2013-03-30 12 views
9

私はWindows用のGithubアプリケーションとCygwinを使ったコマンドラインのgit(Windows版)の両方を使ってgitプロジェクトを作業したいと思っています。cygwinとWindows用Githubの行末

しかし、私は、あるものから別のものへと切り替えるときに、行の終わりに問題を起こし続けます。

コマンドラインツールでrepoに変更がない場合、Githubアプリケーションですべてのファイルを変更する必要があります。私がGithubアプリで変更を加えたら、コマンドラインツールで変更することにします。

かなりの量のテストの後、私は両方のツールでうまく動作させることができませんでした。

どうすればうまくいくのですか?私は現在設定されている.gitatributesで: *テキスト=自動 しかし、それは

答えて

5

これはあなたのリポジトリ設定やリポジトリ内のデータが一致しない場合に発生するGHfWのバグでは役立ちません。例えば、truecore.autocrlfを設定することではなく、誰かがtrueにcore.autocrlfを設定していないので、あなたは(CRLF形式ですでにそうなリポジトリ内の塊を持っている -

ファイルを設定した場合

はCRLFの改行コードに変換します)この問題が発生する可能性があります。

この場合、GHfWは、msysgitとは異なるリポジトリ内のCRLFを変換します。その結果、一部またはすべてのファイルが汚れていました。

gitツールがラインエンドで何をすべきかについて曖昧さを避けるために、チーム全体で一貫したアプローチをお勧めします。つまり、このバグはGHfWの基礎となるライブラリであるlibgit2で修正され、すぐにGHfWに移行するはずです。

1

GitHub 2.7.0.24を使用して私のウィンドウにリポジトリ(CRLF付きのファイル)をクローンしました。 それから、Cygwinのgitバージョン2.1.4を使ってみたかったのです。

[core]セクションの下に "autocrlf = true"を追加して.git/configを編集しました。 (実際の集計は "autocrlf = true"の前にあります)

cygwinのgitは、私は修正なしで最新の状態だと言います。

私はCRLFを元のリポジトリにそのように作成したので、ファイルに保存します。

私はもうGitHubのアプリケーションを使用することはありません...

私はマージの競合がいないCRで< < < < ==== >>>>行を追加している気づいたが、それらは削除されますときに私競合を解決する。

4

WindowsのGit BashとCygwinの両方で作業すると、gitが混乱することになります。つまり、

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

この問題を解決する1つの方法は、レポのルートで.gitattributesファイルを作成し、 次のような行を追加することです:

*.txt text eol=lf 

接尾.txtとの出会いファイル 書き込みそれは両方LFを使用して、gitのを教えて「データベース(.git)」に変換し、作業ディレクトリにチェックアウトします。

reference here

関連する問題