なにごとも 継続

博士課程での研究や思ったこと、作業記録、などなど自由に書いていくつもりです

git/github使い方

Github・Gitの使い方

特に目新しいことはないので、自分用のメモです。

 Githubレポジトリの作成

GitHub超入門 というサイトを読んでいく。 Github Desktopというものもあるらしいが、まずはコマンドラインで勉強する。 レポジトリを新しく作成した。
レポジトリはコードやタスク管理の中心になるページ。
ここをリモートリポというらしい。
ここをコピー(pull)して、そのコードを編集する。

 Git ローカルレポジトリ

ローカルの環境にgit-repoフォルダを作ります。 クローンしてレポジトリをコピーするとき、
ここにGithubレポジトリのアドレスをコピーするのですが、これは正直面倒。
デスクトップ版はその辺が簡単だといいのですけど

ここでほかの初心者用サイトを巡回していたら成程、ローカルレポジトリを作ってからGithubに同期する方法と二つあるのか。
git初心者入門 qiita

とりあえずcloneのパターンをやっていく。 昔、gitのインストールをやったときにユーザーの紐づけはやっているのかもしれない。

clone

0. cloneでコピーしてくる

Github上のレポジトリをメインとして、そのコピーに変形を加えていく。
それをするためのbranch
まず

git clone [repo-adress]

でクローンする。

1. branchの有無を確認し、つくる

確認のコマンド

\git-repo\my-first-repo> git branch
* master

アスタリスクがmasterブランチ。

git checkout -b [branch名] でブランチを作る。
機能ごとにブランチを作るとのことだが、gドライブでも使えるのかな。
このqiitaの記事ではcolabのノートブック上でgitをcloneするとある。
colabからipynbをgithubにアップロードして、そこから引っ張てくる方法がよさそう。

2. 変更のcommit

README.mdファイルで文章を書き足して、保存する。
git statusで現在のレポジトリの状態を確認する。

\git-repo\my-first-repo> git status
On branch test-branch
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

gitでは、変更を直接commitせずに、addによって
「次回のcommitリポジトリに反映させる変更リスト」 に加えることで、変更をまとめて反映可能。

\git-repo\my-first-repo> git add README.md
\git-repo\my-first-repo> git status
On branch test-branch
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   README.md

commitするときは-mオプションで、その変更の内容を説明するメッセージを入れる。

\git-repo\my-first-repo> git commit -m 'update read me'  
[test-branch 180b9fd] update read me
 1 file changed, 4 insertions(+), 1 deletion(-)

updateのように抽象的なものではなく、’add message’のように詳しくする。

 3. 変更履歴の確認

git log で、変更のログを確認できる。

commit 180b9fda77d0317a528d25e13f87359285666f8b (HEAD -> test-branch)
Author: hshinagawa <******@.ac.jp>
Date:   Sun May 17 15:40:44 2020 +0900

    update read me

commit 1f5e595f29a07b48a3c93de2f58f371651623331 (origin/master, origin/HEAD, master)
Author: hshinagawa <39181459+hshinagawa@users.noreply.github.com>
Date:   Sat May 16 22:52:59 2020 +0900

    Update README.md

commit bcaf655081d4a63bfa6038c70835d33b2c03cc77
Author: hshinagawa <39181459+hshinagawa@users.noreply.github.com>
Date:   Sat May 16 22:45:11 2020 +0900

    Initial commit

ここまでが、ローカルな変更。
次にこれをリモート(Github上)に反映させる。

4. push

ローカルの変更をリモートに反映させることをpushするという。
ローカル上のmasterに変更を反映させるのは、みなmasterブランチを元に変更するのでNG
pushの前に、pullをする。
pullは、現在のリモート上のmasterブランチの情報を参照して、変更の衝突を防ぐもの。

git pull {repository} {branch}

で、レポジトリ名とブランチを指定する。
レポジトリ名はURLだが、Git内で省略コードが存在するのでそれを使う。
git remote -vで確かめられるが、基本的にはoriginとなる。
ブランチ名は最新のものを指定する。

pullしたら、 git push origin test-branchでpushする。

 5.変更の統合

HP上で、pull requestを出す。
file changeで内容を必ず確認し、問題がなければmargeする。
作業が自分のみだったら、masterに直接やってもいいかもしれない。

gitのコマンド集では、マージのコマンドも載っていた。

init

既存フォルダをgit レポジトリにする方法。
ディレクトリに移動してgit initを実行する。

ローカルでのaddとcommitは同じ。

githubに反映させるために、
git remote add origin {リポジトリのUserID}
を行う。

その後、pushを行う。

merge

統合するmasterブランチに移動する。

git merge {ブランチ名}
でmasterブランチに統合するブランチを選択する。

まとめ

Gitの使い方の勉強をしました。 次はDocker。