からの続き。
こっちは気を付けることはなさそうなので自分用にメモ。内容はn番煎じ。
githubにpushできたリポジトリをクローンするとこからやっていく。
使うコマンド一覧
git clone <githubリポジトリのパス>
git branch <任意の名前>
git checkout <移動先ブランチ名>
git branch
git add <ファイル名>
git commit -m <"メッセージ">
git push <リモートリポジトリ名> <ブランチ名>
git pull
git log
以下のコマンドを実行し、パスフレーズを打ち込むとクローン完了。
(なぜか今回はssh://なしでいけた。もうよくわからん)
> git clone git@github.com:hemuwan/test.git
Cloning into 'test'...
Enter passphrase for key '/c/Users/hemuwan/.ssh/id_rsa':
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 9 (delta 0), reused 9 (delta 0), pack-reused 0
Receiving objects: 100% (9/9), done.
8.ブランチを作成する。
ブランチは枝分かれという意味。もとのデータからいくつも別軸を生み出し、並行して作業を行うのを枝が伸びる様子に例えられているんだとか。
git branch <任意の名前>
コマンドを使う。
クローンで作成されたフォルダに移動し、ブランチを作成する。
名前は参考に倣って「feature1」としておく。
> cd test
test > git branch feature1
作成した後、該当のブランチで作業するためにはブランチを移動しなければならない。
git checkout <移動先ブランチ名>
コマンドで移動できる。
test> git checkout feature1
Switched to branch 'feature1'
名前を指定しないでgit branch
コマンドを実行すると、現在のローカルリポジトリに存在するブランチが一覧で見れる。いまは「master」と「feature1」のみ。
作業中のブランチには頭に*が表示される。
test>git branch
* feature1
master
9.ブランチでコミットし、リモートリポジトリにプッシュ
とりあえずなんか変化を加える。
新しいファイルでも作成してみる。
test> notepad branchtest.txt
// 中身にブランチのテスト、と記述
新しく作成したファイルをローカルリポジトリにコミットし、リモートリポジトリにプッシュする。
以下のコマンドを実行していく。
test> git add branchtest.txt
test> git commit -m "[Add] branchtest"
[feature1 f73bcd7] [Add] branchtest
1 file changed, 1 insertion(+)
create mode 100644 branchtest.txt
test> git push origin feature1
Enter passphrase for key '/c/Users/hemuwan/.ssh/id_rsa':
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 307 bytes | 307.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'feature1' on GitHub by visiting:
remote: https://github.com/hemuwan/test/pull/new/feature1
remote:
To github.com:hemuwan/test.git
* [new branch] feature1 -> feature1
初回の時とは違い、プッシュ先が「feature1」になっている点に注意。
コマンドを実行するとパスフレーズが求められ、入力すると上記のように「プルできたよー」と表示がされるはず。
githubを見にいくと、ブランチが追加されているのが確認できる。
10.プルリクエスト(コードレビュー)、マージ
ブランチでの作業が完了したら、メインとなるブランチ(たぶんmaster)に変更内容を取り込んでいく。これをマージという。
マージを行う際、github上ではプルリクエストと呼ばれる機能を使い、コードレビューを行うことができる。
githubを開き、Pull requests
タブからNew pull request
ボタンを押下。
マージ元(base:master)とマージ先(compare:feature1)のブランチを選択
(元と先の関係逆か? とりあえず矢印に従えばよいか)
準備できたら再びCreate pull request
ボタンを押下。
(draftなんちゃらは下書き的なやつか。準備できてないとマージできないよとのこと)
11.レビューの実施
プルリクエストを受け取ったら「Pull requests」タブを開き、「File changed」から内容を確認。
訂正がある場合などは、該当の行にマウスホバーすると「+」がでるので、クリックするとコメント追加の領域が現れる。何かほかにもいろいろ機能あるっぽい。すごいなんとなくでやってる。
とりあえず突っ返してみる。
コメント記入 > start a review 押下。
右上のボタンFinish your review
を押下すると、コメントを書く欄と、以下のラジオボタンが出る。(右は翻訳内容)
- comment コメント:明示的な承認なしに一般的なフィードバックを送信します。
- Approve 承認:フィードバックを送信し、これらの変更のマージを承認します。
- Request changes 変更をリクエストする:マージする前に対処する必要があるフィードバックを送信します。
Approve
は内容OKだよーで、Request changes
はこれさえ直せばOKで、comment
がごめんやり直して―ってことかな。
とりあえず、commentでSubmit review
押下。
conversation
タブに以下の表示が。
こうやって、作業者と承認者がやり取りしていくのかな。
返事うったりスタンプ押したりもできる。
ふたたびローカルリポジトリ更新。
git add .
コマンド。.
で現在のディレクトリを表し、ディレクトリ全体の変更を反映できる。
test> git add .
test> git commit -m "[Update]文修正"
[feature1 24ba4a9] [Update] 文修正
1 file changed, 2 insertions(+), 1 deletion(-)
んでもう一回pushかな。(手探り)
test> git push origin feature1
Enter passphrase for key '/c/Users/hemuwan/.ssh/id_rsa':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 353 bytes | 353.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:hemuwan/test.git
f73bcd7..24ba4a9 feature1 -> feature1
またNew pull request
かな。
View pull request
ボタンを押下。
続きにコメントかけるっぽい。
再びレビュー者視点。
問題ないのでOKのコメント残しとく。
(今気づいたけどpull request出した本人は承認押せないっぽい。)
過去の修正依頼は完了したのち、Resolve conversation
ボタンを押すと表示を消せる。
問題なくなったのでいよいよマージ。
Conversation
タグのMarge pull request
を押下。
コメントはよくわからんのでそのままcomfirm marge
マージできたで。ブランチfeature1は完全に消せるでというメッセージ。
(ブランチはgit branch -d <ブランチ名>
で消せる。マージしたら消すものらしい)
masterのブランチを見てみると、feature1ブランチで作成したbranchtest.txt
が追加されている。
マージできたあ!ぐっだぐだ。
12.ローカルリポジトリからプル。
リモートリポジトリのmasterブランチにマージはできたが、自分自身のPCの中のローカルリポジトリ上のmasterにはマージの内容が反映されていない。
マージした内容をローカルリポジトリのmasterに取得し、最適化するにはローカルでmasterブランチに切り替え、git pull
コマンドを実行すればよい。
test> git checkout master
test> git branch
feature1
* master
test> dir
//test.txtしかないことを確認
test> git pull
Enter passphrase for key '/c/Users/hemuwan/.ssh/id_rsa':
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), 624 bytes | 10.00 KiB/s, done.
From github.com:hemuwan/test
6ca8868..46d8a35 master -> origin/master
Updating 6ca8868..46d8a35
Fast-forward
branchtest.txt | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 branchtest.txt
パスフレーズを入力するとなんやかんや入ってきそうな流れ。
ファイルを確認すると、マージした「branchtest.txt」がある。
test> dir
test.txt
branchtest.txt
git log
コマンドでこれまでの編集履歴を見れる。
test>git log
commit 46d8a35b3fb8ーーコミットハッシュ (HEAD -> master, origin/master, origin/HEAD)
Merge: 6ca8868 24ba4a9
Author: hemuwan <61411705+hemuwan@users.noreply.github.com>
Date: Fri Oct 22 13:09:04 2021 +0900
Merge pull request #1 from hemuwan/feature1
[Add] branchtest
commit 24ba4a966e0faーーコミットハッシュ (origin/feature1, feature1)
Author: hemuwan <メアド>
Date: Fri Oct 22 12:46:26 2021 +0900
[Update] 文修正
~以下省略、抜けるときはQキーで~
ながかったがとりあえずここで一区切り。
ひとまずこれでチームによる開発も可能になったかなと。
あとは一緒に開発してくれる友達を見つけるべし。