0

2 つの異なるコードをマージするときに git が何を探すのかを理解したいです。

コードを削除または挿入するのはいつですか

コードがあれば

Foo.java (これは私のコードです)

class Foo {
     void hello(){}
     void bye(){}
     void gone(){}
}

Foo.java (フェッチおよびマージされるコード)

class Foo{
     void hello(){}
     void wait(){}
     void bye(){}
}

上記のコードをマージすると、これは

  1. go and bye メソッドを削除しますか?
  2. hello メソッド内で変更が行われた場合、「hello」を削除して、取得した hello で書き換えますか?
4

1 に答える 1

3

まず、さようならを削除せず、その上にwait()を挿入します。前のリビジョンに存在し、間に触れずに次のリビジョンで削除されていない限り、gone()は削除されません。自分でgone()を追加した場合(つまり、gitがこれを削除する必要があるという指示を受け取らなかった場合)、gone()はマージされたファイルの下部にあります。このような:

class Foo{
     void hello(){}
     void wait(){}
     void bye(){}
     void gone(){}
}

第二に、それはあなたのhelloを削除せず、すでに存在するhello()に加えられた変更を加えるだけです。

マージできない場合は、競合が発生するため、自分でマージする必要があることを忘れないでください。人間の入力なしでは意味をなさないものを削除/追加するだけではありません。

于 2012-12-19T13:08:45.647 に答える