私はこの状況に数回ぶつかり、他の人がこれをどのように扱うのか不思議です。きれいなブランチとのリビジョンの競合とその処理方法
はのは、私は次のようになり、リモートサーバー上の2つの支店を持っているとしましょう:
branchA: a123-->b123-->c123-->e123-->f123
branchB: a123-->d123-->b123-->c123
のはd123
がbranchB
にb123
とc123
前にコミットされたと仮定しましょう。ある時点で、branchB
に必要な作業があるため、branchB
にbranchA
をリベースする必要があります。同僚がそれを行い、競合をきれいにし、すべてがうまく、branchB
がリモートサーバーにプッシュバックされます。私の地元の支店は今きれいにして、検索に使用branchB
次のようになります。当然のことながら、私はので、私は仕事を持っている私の地元branchB
へbranchB
からリモートサーバに何があるかリベースする必要が
local branchB: a123-->d123-->b123-->c123
。しかし時には、私は地元の枝に葛藤がある状況に遭遇し、gitは通常はリベースが働くので、それぞれを通過するように求めています。これは私が実際に同僚によってbranchB
にリベースされたbranchA
からの履歴を持っていないためです。
問題は、この点がリモートbranchB
にあり、実際に修正するための競合がない限り、私が行ったすべての作業を知っていることです。それぞれを通過することは時間の無駄になるでしょう。私はちょうどリモートbranchB
の私のローカルヒストリーを置き換えるには履歴が欲しいです。
インターネットを磨くことは、いくつかの問題を解決する方法があるようですが、あなたが望む場合には、どちらが最善か、Linusの承認を得ているかはわかりません。私は実際に私が探している答えを見つけたかどうか分からない。
一部の回答では、リベースを使用し、theirs
オプションを使用するか、別の戦略を選択する必要があるとの回答があります。私はいくつかの答えは、--skip
がここに適切だと言うと信じています...しかし、git --skip
のように、文字通りはスキップしてしまうことがあります。また、git rebase -X theirs
のようなtheirs
オプションを使用すると、実際に私のためにSHAを書き換える場合があります。
だから、私の質問はどのように私は、リモートブランチ上での歴史を持つ私のローカルブランチに歴史を両立だろうというときされています。私の地元の支店で
- すべてがリモートブランチに既にありますか?
- 私のブランチは清潔で、保留中の変更はなく、実際に修正するための矛盾はありませんか?
- 本当に私の望むのは、自分のローカルブランチの履歴をリモートブランチの履歴に置き換えることです。本当に
をアプローチ。そうでなければこれを行う方法に関するアドバイス? – Sethen