31

git リポジトリに開発ブランチと機能ブランチがあります。開発するコミットを追加しましたが、そのコミットを機能ブランチにマージしたいと考えています。私がこれをしたら

git checkout feature
git merge develop

マージコミットで終わります。開発中の新しいコミットをフィーチャー ブランチに頻繁にマージするので、これらの不必要なマージ コミットはすべて避けたいと思います。実行することを提案したこの回答を見ましたgit rebase developが、ブランチを巻き戻しすぎて、リベースが失敗します。

更新: 私がやったことは

git checkout feature
git merge develop # this creates a merge commit that I don't want
git rebase # this gets rid of the merge commit but keeps the commits from develop that I do want
git push

更新:機能ブランチにマージしてからリベースすると、開発時の元のコミットが異なるハッシュを取得することに気付きました。最終的には機能を開発にマージする予定であり、これはうまく機能しないと推測しているため、それは私が望んでいることではないと思います。

4

2 に答える 2

13

ブランチから 1 つのコミットのみが必要な場合は、developブランチでチェリーピックできますfeature

 git checkout feature
 git cherry-pick -x <commit-SHA1>

コミットはブランチの上に新しいものとして適用され (競合が発生しない場合)、featureブランチをマージして戻すと、Git は競合することなく処理します。

于 2013-07-25T19:08:12.643 に答える