9

Github for Windows アプリケーションと、Cygwin (Windows 上) を使用したコマンド ラインでの git の両方を使用して、自分の git プロジェクトで作業できるようにしたいと考えています。

しかし、ある行から別の行に切り替えると、行末に問題が発生し続けます。

コマンド ライン ツールでレポに変更がない場合は、Github アプリですべてのファイルを変更する必要があります。Github アプリで変更を行うと、コマンド ライン ツールで再度変更する必要があります。

かなりの量のテストを行った後、両方のツールで機能させることができませんでした。

何がそれを機能させるでしょうか?私が現在設定している .gitattributes で: * text=auto しかし、それは役に立ちません

4

3 に答える 3

5

これは、リポジトリの構成とリポジトリ内のデータが一致しない場合に発生する GHfW のバグです。

ファイルを CRLF の行末に変換するように構成した場合 (たとえば、 に設定core.autocrlfしてtrue)、リポジトリに既に CRLF 形式の BLOB がある場合 (誰かがcore.autocrlftrue に設定していない可能性があります)、この問題が発生する可能性があります。

この場合、GHfW はリポジトリ内の CRLF を msysgit とは異なる方法で変換します。その結果、一部またはすべてのファイルがダーティーに見えました。

チーム全体で CRLF に一貫したアプローチをとることをお勧めします。これにより、git ツールが行末をどう処理するかについてあいまいさを避けることができます。とは言うものの、このバグは最近、GHfW の基盤となるライブラリである libgit2 で修正されており、まもなく GHfW に組み込まれる予定です。

于 2013-03-30T13:34:06.353 に答える
4

Windows で Git Bash と Cygwin の両方を操作すると、git が混乱します。あれは:

  • Git Bash でレポをクローン/チェックアウトします。チェックアウト中、git は Windows 上にあると判断するため、通常はCRLFテキスト ファイルのチェックアウトに使用します。
  • Cygwin で git を実行すると、git はそれが Linux 上にあり、そのレポが Linux でチェックアウトされていると認識します (前の手順によると、実際にはそうではありません)。そのため、CRLFCygwin でgit を見ると、多くのファイルの変更を git が報告するようにLF変更されていると思います。CRLF

これを修正する 1 つの方法は.gitattributes、リポジトリのルートにファイルを作成し、次のような行を追加することです。

*.txt text eol=lf

「データベース(.git)」への書き込みと作業ディレクトリへのチェックアウトの両方.txtを使用して、接尾辞 のファイルに遭遇したときにgitに伝えます。LF

ここを参照

于 2015-04-10T03:00:20.543 に答える