Git ブランチについての簡単なメモ
(Marcos Mtzのプロフィール画像リンク)
Marcos Mtz
2022年11月19日 投稿・2022年11月25日 更新
Tsitoaraの著書「Beginning Git and GitHub」から
コミットは、作者、日付、プロジェクトのスナップショット、_前のコミットの名前_に関する情報を含むことができます。
前のコミットの名前は親と呼ばれ、最初のコミットを除くすべてのコミットには少なくとも1つの親があります。
2つの異なるコミットが同じ親を持つ場合、ブランチが作られます。
簡単に言うと、Gitブランチはチェインされたリンクのリストの中の1つのコミットを指すシンプルな参照に過ぎません。
GitはHEAD
という特別な参照を使用して、現在作業中のブランチについての情報を取得します。
Gitブランチは.git/refs/heads/
フォルダ内のファイルに保存され、それぞれのブランチに対する最新コミットのハッシュ文字列を含みます。
ブランチ名の代わりにハッシュ文字列を使って以前のバージョンをチェックアウトする場合、_デタッチド HEAD_と呼ばれる状態になります。
注意 まるで人間の体のように、“デタッチド HEAD”の状態になるのは、避けられるなら避けた方がいいです。それは自分自身を危険な状況に置くことになります。
ほとんどの状況において、HEADは現在のブランチへの参照と考えることができ、作成するすべてのコミットはそのブランチの最後のコミットを親として使用します。
- 親なし:最初のコミット
- 一つの親:ブランチ内の通常のコミット
- 複数の親:ブランチのマージによって作成されるコミット
メモ バージョン間を移動する時のように、未コミットの変更があるファイルを持つ状態ではブランチを切り替えることができません。移動する前にコミットを行うか、後の章で見るように「スタッシュ」という技術を使用します。
ヒント 新しいブランチを作成してすぐに切り替えたい場合は、git checkoutコマンドで“-b”オプションを使用します。例えば、"git checkout -b testing"は"git branch testing"とその後の"git checkout testing"と同じです。
git checkout -b anewbranch
ブランチを削除するには、作成する時と同じコマンドを使用しますが、オプション"-d"を使います。
$ git branch -D branchname
こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/atreston/quick-notes-about-git-branches-3g82