1. ホーム
  2. git

[解決済み] Git リモートマスターによるローカルブランチの更新

2022-03-07 16:50:31

質問

この方法には2つの可能性があると思います。

  1. ローカルブランチをリモートマスターからの変更に置き換えます。

  2. Gitlabのワークフローに従って、マージリクエストを作成し、masterブランチからの変更をmasterの最新版に更新したいブランチにマージします。

この2つのアプローチのメリットとデメリットは何でしょうか?私はどちらかというと、最初のアプローチに傾いています。皆さんはどう思われますか?

どのように解決するのか?

簡単な答え(もっと複雑な答えもたくさんありますが)は、単にマージすることです。

git checkout master
git pull
git checkout <your-branch>
git merge master

(これは事実上、選択肢2で説明したのと同じです)

設定によっては、これらすべての手順が必要ない場合もあります(ただし、すべてやっても損はしません)。各コマンドを読んで、自分に合った正確なワークフローを見つけることをお勧めします。

おそらく新しいコミットが作成され、マージであることを明確にするコメントが添えられます。

もうひとつの方法は、もう少し高度な方法ですが、次のようにします。 rebase の代わりに merge これは、自分のブランチが master から分岐した時点まで時間を巻き戻し、master での変更を取り込んで自分のブランチを master と同じ状態にし、最後に自分のコミットを反映させるというものです。この方法の利点は、履歴がよりシンプルになることです。マージした時点でふたつのブランチが結合するのではなく、自分のブランチの変更を最後に加えた一直線の変更履歴が得られるのです。

そのためには、次のようにします。

git checkout <your-branch>
git rebase master

もしあなたがgitに慣れていないのなら、間違いなくmergeを使い、自信がついたらrebaseに戻ることをお勧めします。