🏹
Gitコマンド入門::Gitブランチ機能(作業の流れ)第六十六回
みなさんこんにちは! 今日はこちらに沿って進めて行きたいと思います! とはいえ、一番のポイントは、ブランチ名ぐらいですね。ここまで、ローカルmainブランチを主に扱ってきましたが、実際の開発では、mainとか、masterは、直接は触らないでしょう。公開しているブランチですしね。少なくても、master から、deveropブランチを切って、さらに、各自開発者のローカルブランチへチェックアウトするのが、最も一般的だと思います。デバッグして、deveropにマージして、さらにデバッグして問題がなければ、deveroopから、masterにマージする。それも、特別な権限を与えられた人のみですね。少なくとも、ローカルmainブランチとかあると、間違ってpushしてしまうなんていう事故の可能性も、ゼロではありませんしね。
前回、第六十五回の記事はこちらから!
git本家本元の情報はこちらから!
今回からの課題は、ここを参考にしています!
本家のドキュメントでは、3つに分けていますね。
- master ブランチ(本番用ブランチ)
- develop ブランチ(開発用ブランチ)
- topic ブランチ(トピックブランチ)
ちなみに、トピックブランチとは、種別みたいなものですから、みなさん個々に、好きな名前を付けてくださいね~(笑)
Gitのドキュメントに合わせた環境づくり
以下のコマンドを実行してください!
こちらにも、UPしてあります!
# --------------------
# フォルダー作成
# --------------------
mkdir func0066 && cd $_
# --------------------
# いつものイニシャル
# --------------------
git init
# --------------------
# master ブランチ
# --------------------
echo "c1" > c1.txt
git add c1.txt
git commit -m "C1"
# --------------------
# develop ブランチ
# --------------------
git checkout -b develop
echo "c2" > c2.txt
git add c2.txt
git commit -m "C2"
echo "c3" > c3.txt
git add c3.txt
git commit -m "C3"
echo "c4" > c4.txt
git add c4.txt
git commit -m "C4"
echo "c5" > c5.txt
git add c5.txt
git commit -m "C5"
# --------------------
# topic ブランチ
# --------------------
git checkout -b topic
echo "c6" > c6.txt
git add c6.txt
git commit -m "C6"
echo "c7" > c7.txt
git add c7.txt
git commit -m "C7"
# --------------------
# master に戻って、c1.txt を編集
# --------------------
git switch master
echo "edit" >> c1.txt
git add c1.txt
git commit -m "C1 edit"
# --------------------
# develop に戻って、c5.txt を編集
# --------------------
git switch develop
echo "edit" >> c5.txt
git add c5.txt
git commit -m "C5 edit"
# --------------------
# develop に、topic をマージ
# --------------------
git switch develop
git merge topic -m "Merge branch 'topic'"
# --------------------
# master に、develop をマージ
# --------------------
git switch master
git merge develop -m "Merge branch 'develop'"
# --------------------
# branch の状態
# --------------------
git branch -avv
develop 69e12e7 Merge branch 'topic'
* master 8a32742 Merge branch 'develop'
topic 34cbf3c C7
# --------------------
# log の状態
# --------------------
git log --oneline --graph master
* 8a32742 (HEAD -> master) Merge branch 'develop'
|\
| * 69e12e7 (develop) Merge branch 'topic'
| |\
| | * 34cbf3c (topic) C7
| | * fae6294 C6
| * | 4e256ee C5 edit
| |/
| * fb345fc C5
| * 79943fe C4
| * be7eb99 C3
| * 04c0026 C2
* | a155180 C1 edit
|/
* fe560ca C1
次は、rebase で試してみましょう!
前半は、同じです。マージする前にリベースしてからマージします。
# --------------------
# rebase してから、マージ!
# --------------------
git switch topic
git rebase develop
git switch develop
git merge topic
# --------------------
# rebase してから、マージ!
# --------------------
git rebase master
git switch master
git merge develop
# --------------------
# branch
# --------------------
git branch -avv
develop 77fa2da C7
* master 77fa2da C7
topic 9d96578 C7
# --------------------
# log
# --------------------
git log --oneline --graph master
* e0b596c (HEAD -> master, develop) C7
* 0abeffc C6
* 288de94 C5 edit
* 2a3963d C5
* 4963f99 C4
* 17d696e C3
* 2a360da C2
* 2181534 C1 edit
* 06bb62d C1
まとめ
ここまでの復習も兼ねて、コマンド操作に慣れて置きましょう! ブランチを作成してファイルを編集して、その後のマージ、リベースの手順についても、回数を重ねていけば、自然とそれなりに理解も深まりますね~
それでは、今回はここまで、お疲れ様でした!
Discussion