0

私のブランチは、オリジンが 5 コミット遅れています。

muralish@vnc9[~/git/task](task-68↓3| ✓)$git status
# On branch task-68
# Your branch is behind 'origin/task-68' by 5 commits, and can be fast-forwarded.
#
nothing to commit, working directory clean
muralish@vnc9[~/git/task](desflow-68↓3| ✓)$

これらのコミットは、A-> B-> C -> D -> E です。C を作業ディレクトリにコミットすることに関連する変更のみを取得するにはどうすればよいですか。

git rebase -i を試しましたが、そのコミットはまったくリストされません。以下の情報を出力します。

   noop

   # Rebase 484a22b..b7fa802 onto 484a22b
   #
   # Commands:
   #  p, pick = use commit
   #  r, reword = use commit, but edit the commit message
   #  e, edit = use commit, but stop f

どんな助けでも大歓迎です。

4

1 に答える 1

1

試す

git cherry-pick <C-sha>

これらの変更を新しいコミットとして保存したくない場合は、

git reset HEAD~1

その後、変更はステージングもコミットもされません。

アップデート:

自分のブランチがtask-68からの5つのコミットをマージしたように見せたいが、実際にはコミットCしか持っていない場合は、(チェリーピッキング後に)次のように記述できます。

git merge -s ours task-68

アップデート-2:

task-68ローカルブランチをと同じに保つのが一般的な方法origin/task-68です。したがって、親ブランチから一部のコミットを省略したい場合は、事前にフォークすることをお勧めします。

git checkout -b task-68-wip

この後、上記のようにチェリーピッキングとマージを続行します。

于 2013-01-15T16:06:51.830 に答える