アジェンダ
ブランチを作成する際に発生すること、ブランチを切った後の作成元ブランチとの関係性、そしてブランチを切った後に元のブランチが更新された場合の対処方法について改めてお浚いのため、簡単にまとめます。
ブランチの作成: git checkout -b <新しいブランチ名>
まず、git checkout -b <新しいブランチ名> コマンドを実行することで起こることは以下の様になります。
-
新しいブランチが作成される: 指定した
<新しいブランチ名>という名前のブランチが、現在のコミットから作成されます。
-b オプション: このオプションが新しいブランチを作成する部分です。-b は「branch」の略で、新しいブランチを現在のコミットから作成するという意味です。
- 新しいブランチに切り替えられる: 作成された新しいブランチに自動的に切り替わり、そのブランチ上で作業が行えるようになります。
git checkout <ブランチ名> コマンド: この部分は指定されたブランチに切り替えるためのコマンドです。git checkout <ブランチ名> は指定されたブランチに移動する機能を持ちます。
まとめると、このコマンドは、ブランチを作成してそのブランチに移動する作業を一度に行う便利な方法です。
ブランチを切った後の元のブランチとの関係性
ブランチを切った後、新しいブランチと元のブランチとの関係性は以下の様になります。
- 共有の履歴: 新しいブランチは元のブランチと同じコミット履歴を持っています。これは、ブランチを切った時点までの履歴が完全に一致していることを意味します。
- 独立した作業環境: ブランチが切られた後、新しいブランチで行う変更は元のブランチには影響しません。逆に、元のブランチで行う変更も新しいブランチには影響を与えません。これにより、別々の機能開発や修正を並行して進めることができます。
まとめると、新しいブランチは元のブランチと同じ履歴を持ちながらも、独立した変更を行える作業環境となります。
ブランチを切った後の元のブランチの変更を取り込む方法
ブランチを切った後に、元のブランチで新しい変更が行われた場合、その変更を新しいブランチに取り込む方法は以下の通りです。
git merge を使う方法
新しいブランチで元のブランチの変更を取り込みたい場合、以下の手順で行います。
git checkout <新しいブランチ名> # 新しいブランチに移動
git merge <元のブランチ名> # 元のブランチの変更をマージ
結果: 元のブランチの変更が新しいブランチに取り込まれ、両ブランチの変更が統合されます。もし競合が発生した場合は、それを解決する必要があります。
git rebase を使う方法
git rebase を使用すると、元のブランチの最新の変更を新しいブランチの先頭に取り込むことができます。手順は以下の通りです。
git checkout <新しいブランチ名> # 新しいブランチに移動
git rebase <元のブランチ名> # 元のブランチの変更をリベース
結果: 新しいブランチは元のブランチの最新の変更を基にして、あたかもその変更が最初から含まれていたかのように見えます。これにより、履歴が直線的になり、ブランチのクリーンな状態を保つことができます。ただし、競合が発生する場合は、それを解決する必要があります。
git cherry-pick を使う方法
特定のコミットだけを新しいブランチに取り込みたい場合は、git cherry-pick を使用します。
git checkout <新しいブランチ名> # 新しいブランチに移動
git cherry-pick <コミットID> # 取り込みたいコミットを指定
結果: 指定したコミットの変更だけが新しいブランチに適用されます。