2

私は2つのブランチを持っています:

  1. 主人
  2. tmp

tmpブランチが切り離されている優先順位で競合を解決して、ブランチを上
に置く必要がありますtmpmastertmp

私がする時

git checkout tmp
git rebase --strategy=recursive -X theirs master

エラーが発生しました まず、頭を巻き戻してその上にあなたの作品を再生します...

fatal: Could not parse object '0a722ac51071ecb4d00b1ef45384aac227b942a0^'  
Unknown exit code (128) from command: git-merge-recursive 0a722ac51071ecb4d00b1ef45384aac227b942a0^ -- HEAD 0a722ac51071ecb4d00b1ef45384aac227b942a0  

私がする時

git checkout tmp
git cherry-pick --strategy=recursive -X theirs 0a722ac..384144a 

正常に動作します

どのような違いがありますか、または rebase で同じことを行うにはどうすればよいですか?

4

2 に答える 2

2

リベースは、特定のコミットのにすべてのコミットを移動することによって行われます。ここでは の親の後にあり0a722acます。

チェリーピックはコミットのリストを取得し、それらを複製します: 0a722ac..384144a

アクセスできないため0a722ac^(たとえば、0a722ac が最初のコミットになる孤立したブランチの場合)、リベースは失敗し、cherry-pick (0a722ac の親にアクセスする必要はありません)成功します。

詳細については、「コミットの範囲を選択して別のブランチにマージする方法」を参照してください。

于 2014-04-26T12:43:05.217 に答える