master
にチェックインする必要があるいくつかのコミットをチェックインしましdevelop
た。これらのコミットを master ブランチから削除し、develop ブランチに含めるには、どの git コマンドを使用すればよいですか?
質問する
37222 次
4 に答える
53
私が間違っていなければ、2つの同期されたブランチが
master
ありdev
、コミットする前にブランチを切り替えるのを忘れていました。
その場合、次のようになります。
----------------
git log in dev
xxx
yyy
...
----------------
と:
----------------
git log in master
ccc
bbb
aaa
<---- here you forgot to switch branch
xxx
yyy
...
----------------
解決策は次のとおりです。
まず、次のことを確認してください。
git status -s
空の結果を返します。
次に、からからすべての新しいコミットを取得しmaster
ますdev
。
git checkout dev
git merge master
今あなたに戻りますmaster
:
git checkout master
不要なコミットを削除します。
git reset --hard HEAD~3
数~3
は、削除するコミットの数です。
覚えておいてください:git status -s
空の結果を返す必要があります。そうしないと、git reset --hard
データが失われる可能性があります。
于 2013-03-06T17:07:46.557 に答える
1
通常、git で同じことを行うにはいくつかの方法があります。
git checkout develop
git cherry-pick XXX // XXX being the sha1 of the commit you want to grab
git checkout master
git rebase --interactive HEAD~IDX // IDX being the position of the last "good" commit compared to HEAD
最後のコマンドは、HEAD から最後の適切なコミットまでのすべてのレビューを表示し、コミットの行を削除してブランチ開発に移動するだけです。
于 2013-03-05T22:33:30.180 に答える