🏹

Gitコマンド入門::Gitブランチ機能(作業の流れ)第六十六回

2021/03/29に公開

みなさんこんにちは! 今日はこちらに沿って進めて行きたいと思います! とはいえ、一番のポイントは、ブランチ名ぐらいですね。ここまで、ローカルmainブランチを主に扱ってきましたが、実際の開発では、mainとか、masterは、直接は触らないでしょう。公開しているブランチですしね。少なくても、master から、deveropブランチを切って、さらに、各自開発者のローカルブランチへチェックアウトするのが、最も一般的だと思います。デバッグして、deveropにマージして、さらにデバッグして問題がなければ、deveroopから、masterにマージする。それも、特別な権限を与えられた人のみですね。少なくとも、ローカルmainブランチとかあると、間違ってpushしてしまうなんていう事故の可能性も、ゼロではありませんしね。

前回、第六十五回の記事はこちらから!

https://zenn.dev/shiozumi/articles/f4493dd81f0693

git本家本元の情報はこちらから!

https://git-scm.com/book/ja/v2

今回からの課題は、ここを参考にしています!

https://git-scm.com/book/ja/v2/Git-のブランチ機能-ブランチでの作業の流れ

本家のドキュメントでは、3つに分けていますね。

  1. master ブランチ(本番用ブランチ)
  2. develop ブランチ(開発用ブランチ)
  3. topic ブランチ(トピックブランチ)

ちなみに、トピックブランチとは、種別みたいなものですから、みなさん個々に、好きな名前を付けてくださいね~(笑)

Gitのドキュメントに合わせた環境づくり

以下のコマンドを実行してください!

こちらにも、UPしてあります!

https://gist.github.com/ec585f1438c2bbdf4d7ffa219200a9cb.git

# --------------------
# フォルダー作成
# --------------------
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

まとめ

ここまでの復習も兼ねて、コマンド操作に慣れて置きましょう! ブランチを作成してファイルを編集して、その後のマージ、リベースの手順についても、回数を重ねていけば、自然とそれなりに理解も深まりますね~

それでは、今回はここまで、お疲れ様でした!

https://zenn.dev/shiozumi/articles/8482fa655d19f5
https://twitter.com/esmile2013

Discussion