0
1

More than 1 year has passed since last update.

【git】(続き)ブランチ、プル、マージとか【チーム開発を目指して】

Last updated at Posted at 2021-10-22

からの続き。

こっちは気を付けることはなさそうなので自分用にメモ。内容は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を見にいくと、ブランチが追加されているのが確認できる。

image.png
image.png
image.png

10.プルリクエスト(コードレビュー)、マージ

ブランチでの作業が完了したら、メインとなるブランチ(たぶんmaster)に変更内容を取り込んでいく。これをマージという。

マージを行う際、github上ではプルリクエストと呼ばれる機能を使い、コードレビューを行うことができる。

githubを開き、Pull requestsタブからNew pull requestボタンを押下。
image.png

マージ元(base:master)とマージ先(compare:feature1)のブランチを選択
(元と先の関係逆か? とりあえず矢印に従えばよいか)
image.png

変更点確認
image.png

Create pull requestボタンを押下。
image.png

依頼のコメント書いたり、右上のレビュアーを設定したり
image.png

準備できたら再びCreate pull requestボタンを押下。
(draftなんちゃらは下書き的なやつか。準備できてないとマージできないよとのこと)
image.png

11.レビューの実施

プルリクエストを受け取ったら「Pull requests」タブを開き、「File changed」から内容を確認。
image.png
image.png

訂正がある場合などは、該当の行にマウスホバーすると「+」がでるので、クリックするとコメント追加の領域が現れる。何かほかにもいろいろ機能あるっぽい。すごいなんとなくでやってる。
とりあえず突っ返してみる。
コメント記入 > start a review 押下。
image.png

右上のボタンFinish your reviewを押下すると、コメントを書く欄と、以下のラジオボタンが出る。(右は翻訳内容)

  • comment コメント:明示的な承認なしに一般的なフィードバックを送信します。
  • Approve 承認:フィードバックを送信し、これらの変更のマージを承認します。
  • Request changes 変更をリクエストする:マージする前に対処する必要があるフィードバックを送信します。 image.png

Approveは内容OKだよーで、Request changesはこれさえ直せばOKで、commentがごめんやり直して―ってことかな。
とりあえず、commentでSubmit review押下。
conversationタブに以下の表示が。
image.png

こうやって、作業者と承認者がやり取りしていくのかな。
返事うったりスタンプ押したりもできる。
image.png

とりあえず直せと言われたの出なおします。
image.png

ふたたびローカルリポジトリ更新。
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

githubを開くとなんか増えてる。
image.png

image.png

またNew pull requestかな。
image.png
View pull requestボタンを押下。
image.png
続きにコメントかけるっぽい。
image.png

再びレビュー者視点。
問題ないのでOKのコメント残しとく。
(今気づいたけどpull request出した本人は承認押せないっぽい。)
image.png

過去の修正依頼は完了したのち、Resolve conversationボタンを押すと表示を消せる。
image.png
image.png

問題なくなったのでいよいよマージ。
ConversationタグのMarge pull requestを押下。
image.png

コメントはよくわからんのでそのままcomfirm marge
image.png

マージできたで。ブランチfeature1は完全に消せるでというメッセージ。
(ブランチはgit branch -d <ブランチ名>で消せる。マージしたら消すものらしい)
image.png

masterのブランチを見てみると、feature1ブランチで作成したbranchtest.txtが追加されている。
image.png

マージできたあ!ぐっだぐだ。

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

image.png

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キーで~

ながかったがとりあえずここで一区切り。

ひとまずこれでチームによる開発も可能になったかなと。
あとは一緒に開発してくれる友達を見つけるべし。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1