Git Lesson 5
目的:ブランチのマージおよびタグを理解する
- 前提
- develop の変更を main(本番用)にマージしたいが main でコンフリクトが起きることは避けたい(機能停止となるため)
- 戦略
- develop に main の変更を取り込む
- develop 上でコンフリクトを解消した後で main に合流
Step 1: develop ブランチでの処理
- 以下のコマンドで現在のブランチを確認する
git checkout develop git branch git rebase main- rebase は分岐の起点を変える.
- develop はもともと main の最後の変更が行われる前に分岐したが,現在の main から分岐したように変更する.
- これにより develop ブランチでコンフリクトが起きる(かもしれない)
-
コンフリクトの修正
- 以下のコマンドを実行
git add [ファイル名] # 修正したファイルをステージに追加 git rebase --continue # rebase を継続- rebase は分岐後の develop コミットを現在の main に適用していくので何回も conflict が出る可能性があります(develop のコミットを rebase -i を使って整理しておくと良い)
Step 2: Develop の修正を main ブランチに合流(マージ)
- Step 1 の rebase を行うことで,merge によるコンフリクトは起こらなくなります(起こらなくなるはず)
git checkout main # main ブランチに切り替え git branch git merge develop # develop の変更をマージ- merge の後はコミットが要求されるが,fast forward (早送り) マージとなるため,main 上には develop のコミットが単純に付け加えられる.
- fast forward を避けて,独立したコミットをしたい場合は
merge --no-ffが必要となる.
- develop ブランチの削除
git branch -d develop # orign にマージされてないと怒られる git branch -D develop
Step 3: Push
- main ブランチの変更を Push(コミットはもうしてあるので)
git push # その他の指定はしなくてよい
Step 4: タグの利用
- 特定のコミットにタグをつけて管理する
- とりあえずの完成としてバージョン 1.0.0 をつける
git tag v1.0.0 git push origin v1.0.0 # タグをGitHubにPush