gitでマスターを使用してブランチを最新の状態に保つにはどうすればよいですか?


126

私のマスターにはバグ修正があり、ブランチにもそのバグ修正を取得してほしい。どのgitコマンドを使用しますか?

回答:


172

masterのすべての変更に問題がないと想定すると、次のようになります。

git checkout <my branch>

作業ツリーをブランチに切り替える。次に:

git merge master

masterのすべての変更を自分のものとマージします。


5
そして、これは私のマスターから私のブランチへの変更を追加し、マスターをそのままにしますよね?
ニックハバード、

3
@Nic-これにより、バグ修正だけでなく、マスターからのすべてのコミットが取り込まれます。これがあなたのやりたいことかどうか確認してください。
manojlds 2011

12
@Nic-正解です。これはマスターを変更しません。
John Doty、2011

16
ローカルマスターブランチが最新であることを確認するために、最初の「git checkout master; git pull」を推奨することをお勧めします。通常は明白ですが、...
MikeW 2017年

マスターチェックアウト/マージショートカットとして、「git pull origin master」を実行してサーバーマスター/マージをローカルのチェックアウトブランチにプルできますか?
user1172173

66

ブランチがローカルのみでサーバーにプッシュされていない場合は、

git rebase master

それ以外の場合は、

git merge master

18
コミット履歴が変更され、変更された検索履歴をサーバーにプッシュしたくないためです。
Chetan、2011

1
あなたは、リモートリポジトリを介したとしてSVNリポジトリを使用している場合git svn-then git rebase masterSVNが理解するものであるリニア歴史を維持するために、移動するための方法です。
alondono 2015年

15

チェリーピックを使用して、特定のバグ修正コミットを取得できます

$ git checkout branch
$ git cherry-pick bugfix

バグ修正がマスターにマージされたブランチである場合にのみ、チェリーピックが機能しますか?
Prasith Govin 2013年

1
チェリーピックすることもできますが、ブランチをマスターにマージした後(ブランチの準備ができたとき)、履歴でバグ修正コミットが2回行われます。
Gauthier、2015

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.