0

私はgitバージョン管理を学び始めたばかりで、この問題に直面しています。次のブランチ構造が与えられます(無料のから引用):

分岐構造

index.htmlC4/C5コミットがファイルの同じ部分を変更したと仮定しましょう。

git checkout master
git merge iss53

私がそれが正しいことを理解しているなら、私は手動で衝突を解決する必要があります。この本は、競合ファイルについて何かを述べています。この競合ファイルはどこにありますか?そして、どのように、次の対立を考えると:

<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
  please contact us at support@github.com
</div>
>>>>>>> iss53:index.html

「iss53」ブランチからの変更のみを「master」にマージして、HEADからのすべての変更を破棄できますか?これらの行を編集するにはどうすればよいですか?

4

2 に答える 2

5

競合する行は、競合のあるファイルに含まれます。したがって、index.htmlファイルに競合がある場合は、テキストエディターで開くだけで、上記のビューを取得できます。

不要な行を削除(および/または変更)してから、ファイルを保存することをお勧めします。次に、、git add index.htmlおよびgit merge --continue

または、http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.htmlの使用を検討してgit mergetool ください

于 2013-01-06T02:09:50.913 に答える
3

この本は、競合ファイルについて何かを述べています。この競合ファイルはどこにありますか?

「競合ファイル」はなく、ファイルのみがあり、マージの両方の親が自動的にマージできないファイルに変更を加えた場合、それらは競合する可能性があります。この場合、ファイルを編集するか、(以下を参照)ファイルの2つの親バージョンのいずれかをチェックアウトすることにより、競合を手動で解決する必要があります。

そして、どうすれば... HEADからのすべての変更を破棄し、「iss53」ブランチからの変更のみを「master」にマージできますか?

マージ中に、を使用git checkout --theirs index.htmlして変更を破棄し、マージされるバージョンを使用できます。そうしても、ファイルは引き続きgit add index.html競合としてマークされ、競合を解決済みとしてマークする必要があります。

于 2013-01-06T02:18:14.757 に答える