2

GitHub から複製したリポジトリがあり、ファイル A に変更を加えましたが、Git はファイル B、C、D の変更を検出しています。3 つのファイルはすべて、基本的に B、C、D の内容全体として変更を検出しています。つまり、+ B、C、D のすべての行、-B、C、D のすべての行です。

汚いコミットになるので、これをコミットしたくありません。git がこれらの変更を検出するのはなぜですか? また、git にこれらの変更を永久に無視させるにはどうすればよいですか?

プロジェクトは C# で、GitHub Windows アプリケーションを使用し、IDE は VS Express 2012 です。

編集: ファイルが変更されたことは認識していますが、a) 何が変更されたかを調べ、b) git にそれらを無視し、コミット間で再度取得しないように指示する方法はありますか? 複製したプロジェクトを最初に開いた後、編集者が何らかの方法でファイル B、C、D を変更しているようです。

git reset --hard を実行した後でも、git diff は引き続き変更を報告します。

4

2 に答える 2

2

おそらく、行末戦略について git に伝える必要があります。

このテーマの詳細については、次のリソースを参照してください

注:短時間の修正ではcore.autocrlf、コンピューターの設定を微調整する必要があります。正しい修正は、.gitattributesファイルを作成してコミットし、クローンしたアップストリーム リポジトリにプル リクエストを送信することです。実際、問題を解決するだけでなく、新しいユーザーが後で同じ問題に遭遇するのを防ぐことにもなります.

有効な C# プロジェクト互換のクロス プラットフォーム.gitattributesファイルの例は、ここにあります。そこからインスピレーションを得てください;-)

行末と Git の内部動作に関する非常に詳細なブログ投稿はMind the end of your lineです。読む価値は大いにあります。

于 2012-11-07T06:26:20.037 に答える
1

これはおそらく、Github ページの「行末の処理」で説明されているように、eol (行末) スタイルに関連しています。

私がお勧めします:

git config --global core.autocrlf false
git clone https://github.com/user/repo newrepo

そして、その新しいレポで問題が解決しないかどうかを確認してください。

core.autocrlfをアクティブにする理由はありますが、解決するよりも多くの問題を引き起こします。
他の設定で行末を管理できます (この質問を参照してください)。

于 2012-11-07T06:23:50.030 に答える