2011-12-08 22 views
19

から新しいブランチを作成し、私は通常Gitリポジトリ:間違った枝

git checkout -b new-feature develop 

の開発から新しいブランチを作成し、その後、最後の後、私は

git checkout develop 
git merge new-feature 

を開発するためにバックマージするが、今回は私がnew-feature2たbrachを作成したコミットnew-featureから今すぐdevelopにマージすることはできません。

developnew-feature2の親を切り替える方法はありますか?パッチの作成について

(私が上で働いていたファイルはそう、これは、マージ必要はありませんdevelopと同じバージョンでした。)

答えて

4

何、developブランチにチェックアウトし、パッチを適用しますか?

git checkout new-feature2 

git format-patch new-feature 

git checkout develop 

git am name-of-the-patch.patch 
+0

いいですね、コマンドは何でしょうか? – hakunin

+0

ファンタスティック、gitパッチがとても簡単だったことを知らなかった、ありがとう! – hakunin

1

またgit diffgit applyを使用することができます。

git diff new-feature..new-feature2 | git apply - 
+0

代替ソリューションをお寄せいただきありがとうございます! – hakunin

26

あなたがメインベースに上に機能をリベースできます

git checkout new-feature2 
git rebase --onto develop new-feature new-feature2 
# rebase the stuff from new-feature to new-feature2 onto develop branch 

またはそれを行う「手動」桜のピックを使って、

git checkout develop 
git log --oneline new-feature..new-feature2 
# for every commit call: 
git cherry-pick <commit-id> # note, newer versions of cherry-pick allow multiple commits at once 
+0

私はすでにパッチ適用の問題を解決しましたが、これは私が探していたもののように聞こえます。コマンドを含めてくれてありがとう、これは読者に役立つだろう。 (PS:私がリベースしたいブランチは 'develop'だったことに注意してください例では、' maser'を言う) – hakunin

+0

私は、hakuninをそのを指摘して感謝の例を変更しました。 – reto

+0

命の恩人...(まあ、とにかく私に少し時間が保存されては!!!)、これを追加するためのおかげで素晴らしいサウンド –

3

あなたはインタラクティブリベースを見たことがありますか?

git rebase -i develop 

は非常に簡単なソリューションです。そのブランチからのすべてのコミットを表示します。不要なブランチから "pick"行を削除するだけです。

+0

! – hakunin

関連する問題