web-dev-qa-db-ja.com

Gitでマスターからブランチへの変更を取得

私のリポジトリには、私が取り組んでいるaqというブランチがあります。

それから私はmasterの新しい作業とバグをコミットしました。

それらのコミットをaqブランチに入れるための最善の方法は何ですか? masterから別の新しいブランチを作成し、それをaqとマージしますか?

565
Slee

aqブランチを調べて、masterからリベースしてください。

git checkout aq
git rebase master
652

あなたがあなたのaqブランチにいるとき、あなたはちょうどgit merge Origin/masterをできるはずです。

git checkout aq
git merge Origin/master
248
Chris Kooken

まずマスターにチェックアウトします。

git checkout master

すべての変更、修正プログラム、コミットを行い、マスターをプッシュします。

あなたのブランチ 'aq'に戻り、そこでmasterをマージします。

git checkout aq
git merge master

あなたの枝はマスターと最新の状態になります。マージの良い基本的な例は3.2 Gitの分岐 - 基本的な分岐とマージです。

80

マスターのバグ修正が他のコミットに含まれていないという保証はありません。したがって、単純にマージすることはできません。行う

git checkout aq
git cherry-pick commit1
git cherry-pick commit2
git cherry-pick commit3
...

それらのコミットがバグ修正を表すと仮定します。

これからは、別のブランチにバグ修正を続けてください。あなたはただできるようになるでしょう

git merge hotfixes

それらすべてを通常のdevブランチにまとめたいとき。

23
Adam Dymitruk

関連するcherry-pickがブランチaqにコミットするか、ブランチmasterをブランチaqにマージします。

16

簡単な方法

# 1. Create a new remote branch A base on last master
# 2. Checkout A
# 3. Merge aq to A
7
Alen Lee

私にとっては、すでに変更が加えられていて、ベースブランチから最新のものが欲しいと思っていました。私はrebaseを実行することができませんでした、そして、cherry-pickは永遠に取っていたでしょう、それで私は以下をしました:

git fetch Origin <base branch name>  
git merge FETCH_HEAD

だからこの場合:

git fetch Origin master  
git merge FETCH_HEAD
6
Pete B.

aqと結合します

git checkout master
git pull
git checkout aq
git merge --no-ff master
git Push
6
alditis

あなたはいくつかの選択肢があります。コミット名を保持するブランチにgit rebase master aqしますが、これがリモートブランチの場合はREBASEしないでください。コミット名を保持することを気にしないのであれば、git merge master aqできます。もしあなたがコミット名を残しておき、それがリモートブランチであればgit cherry-pick <commit hash>はあなたのブランチにコミットします。

2
Dan McNamara