web-dev-qa-db-ja.com

git-用語の混乱、「彼ら」対「私」

私と自分の意味が完全に混同されています。この特定のケースでは、rebase -iを介して約80のコミットを押しつぶし、これをdevelopにマージする機能ブランチがあります。いくつかの競合が発生しました。機能ブランチにあるコードを使用したいだけです。私は「私のもの」を試してみましたが、それは実際には逆のように見えました。

誰かがこの用語に光を当てることができますか?

24
CaptSaltyJack

oursおよびtheirsはやや混乱する概念です。リベースを実行すると悪化する:

マージを実行するとき、oursはマージするブランチを指しますintoで、theirsはマージするブランチを指しますfrom 。したがって、mergeの途中で競合を解決しようとしている場合:

  • 現在使用しているブランチからの変更を受け入れるには、oursを使用します
  • マージするブランチからの変更を受け入れるには、theirsを使用します。

それは理にかなっていますね?

rebasingの場合、ourstheirsは逆になります。選択したファイルを「デタッチされた」HEADブランチにリベースします。ターゲットは、HEADブランチ、およびmerge-fromはリベース前の元のブランチです。それは:

  • --oursリベースが構築している匿名のもの、そして
  • --theirsリベースされるもの;

つまり、リベースすると、現在のブランチのコミットが(一度に1つずつ)リベースするブランチの上にリプレイされます。

44
Keith

「時間」(および「鉱山」)はcurrentブランチを指します。 「theirs」とは、マージされるブランチを指します。「theirs」を実際に使用したいようです。

19
mipadi