0

ファイルの末尾にある改行の違いをめぐって git でプル (マージ) しているときに、競合が発生することがよくあります。

競合は次のようになります。

diff --cc httpdocs/about/faq.php
index 0ae3963,b5eb519..0000000
--- a/httpdocs/about/faq.php
+++ b/httpdocs/about/faq.php
@@@ -212,4 -211,4 +212,8 @@@ $_SESSION['activePage'] = 'about'
        </div><!-- end wrap -->

 -<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?>
++<<<<<<< HEAD
 +<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?>
++=======
++<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?>
++>>>>>>> 564e069cccfad98f818ec878a3b2526fd9430f8a

悪い; ファイルを手動で解決して競合するファイルを追加した後、(ファイルの最後に関連して) コミットするものは何もないように見えるため、再度プルを実行すると、まったく同じ競合が発生します。解決策はありますか?

4

1 に答える 1

1

これらの違いは、OSが異なれば、何が回線を終了するかについて異なる考え方を持っているという事実から生じています。

Gitは通常、core.eolの構成値をデフォルトで「native」に設定することで、これらを適切に処理します。ただし、開発者が何らかの理由でその設定を持っていない場合、またはWindowsからUNIXスタイルのファイルをコミットする場合、またはその逆の場合は、これらの問題が発生する可能性があります。

問題の原因を見つけてそこで対処するのが最善です。そうでない場合は、core.eol(lf / crlf)に異なる値を設定して、それが修正されるかどうかを確認できます。プロジェクト全体ではなく、特定のパスでのみ発生する場合は、そのパスのgitattributesファイルを定義する方がよい場合があります。

于 2011-09-08T22:28:18.060 に答える