web-dev-qa-db-ja.com

別のブランチで最後のNgitコミットを再生します

ブランチ「マスター」でコミットしようとしたときに、ブランチ「テスト」で誤って10回コミットしました。 「testing」ブランチの他のコミットはガベージなので、「master」とマージしたくありません。代わりに、マスターで最後の10個のコミットを再生したいだけです。

45
Tom Lehman
  1. gitチェックアウトマスター
  2. gitwhatchangedテスト
  3. git Cherry-pick _________

19
Ron

リベースはそれを行う必要があります。

git rebase -p --onto master testing~10 testing

これにより、テストの最後の10個のコミットがマスターにコピーされ、新しいテストになります(古いテストは孤立します)。次に、マスターを早送りとしてテストにマージできます。

git checkout master
git merge testing
95
Talljoe

コメントで述べたように、rebaseに触発された答えは「ガベージ」コミットを孤立させたままにするです。

簡単なツールを使用するだけです。

git checkout master
git merge testing
git checkout testing
git reset --hard HEAD~10   # Go back 10 commits (*1)
git checkout master

(* 1)testingのおかげでmasterにコミットがあるため、mergeブランチからのコミットのみが「失われます」。

3
Tim