0

現在、2人でプロジェクトに取り組んでいます。githubを使用しており、マスターブランチが1つあります。また、開発者ごとに2つのサブブランチがあります。したがって、合計でマスターを持つ3つのブランチがあります。

hello.classファイルがあるとしましょう。両方の開発者は、それぞれのブランチのファイルに変更を加えます。サブブランチをプッシュしてマスターとマージするとします。もう一方のサブブランチは遅れており、マスターをプルしてから、サブブランチでリベースする必要があります。

彼がマスターの変更をリベースすると、hello.classでの作業が上書きされるため、問題が発生します。この問題をどのように解決しますか?マスターをプルしてから、ファイルで行われた作業を上書きせずに変更をサブブランチに自動マージする方法はありますか?

4

2 に答える 2

3

マージはgitの半分です。変更が競合する場合、gitはマージ/リベースを中止し、続行する前にそれらを修正するように求めます。変更がファイルの異なる部分にある場合、gitはそれ自体をマージします。あなたは仕事を失うためにあなたの邪魔にならないようにしなければなりません。

于 2013-02-27T01:23:39.493 に答える
1

Gitは変更を上書きしません。リベースを実行すると、それらがマージされます(つまり、マージを実行することもできますgit merge master)。両方が同じコード行を変更すると、gitは混乱し、マージの競合を修正するように求められます。しかし、まったく同じ行を変更しなかった場合、gitは変更をマージするのに十分賢いです。

.classファイルをコミットするべきではないので、.javaファイルをコミットしていると仮定しています。

于 2013-02-27T01:21:30.030 に答える