13

pullWindows マシンからコードに git を使用しています。

他の開発者pullが自分の liunx マシンでサーバーからファイルを取得する^Mと、最初の行の最後に .

どうすればgitでこれを処理できますか?

つまりgit、サーバー上のコードを (ウィンドウ マシンから) プッシュするときに、行末を変更する必要があります (最初の行の末尾にある control+M または ^M を削除します)。

4

3 に答える 3

21

この GitHubヘルプ ページでは、この非常に具体的なトピックを扱い、Git 構成を正しく構成するための手順を説明しています。

基本的に、Mac/Linux で作業している場合は、

$ git config --global core.autocrlf input

あなたがむしろWindowsの男なら、使用してください

$ git config --global core.autocrlf true

: これにより、チェックアウトまたはコミットの実行中にその場で行末が変換され、作業ディレクトリにネイティブの行末がありながら、テキスト ファイルがリポジトリに LF 行末を持つことが保証されます。

注 2 : これにより、リポジトリの履歴が書き換えられることはありません。リポジトリ内の既存のコミットは、潜在的に混合された行末を保持します。

注 3 : すべてのコミッターが、次のコミットの前にこの構成ステップを実行するようにしてください。

全員に構成の変更を強いる必要のない別のアプローチが存在します。特定のファイル名.gitattributesをリポジトリに追加する必要があります。彼のトピックの詳細については、git の公式gitattributes ドキュメントを参照してください。

注 4 : githubber の Tim Clem は、行末、関連する構成エントリ、および gitattributes の利点に関する非常に詳細なブログ投稿 ( Mind the End of Your Line ) を公開しました。概念、「理由」、および内部機構を十分に理解したい場合は、絶対に読む必要があります。

于 2012-02-10T19:16:46.887 に答える
1

core.autocrlfを true に設定してみてください ( git-configを参照)。

于 2012-02-10T09:38:42.163 に答える
0

これは GIT の問題ではなく、ファイルが最初に作成/アップロードおよび保存された方法に問題があります。最善の解決策は、行末タイプを UNIX に設定できるエディタを見つけることです。

これはWindows側でGITでやる方法もあるみたいですが、一般的にはやり方が悪いと思います

http://lostechies.com/keithdahlby/2011/04/06/windows-git-tip-hide-carriage-return-in-diff/

于 2012-02-10T09:38:52.897 に答える