0

.gitattributes の動作と混同しています。

行末の正規化に関する記事に従って、次の手順を実行しました。

  • で作成された.gitattributes* text=auto
  • 私が持っている開発用Windowsマシンでcore.autocrlf = true
  • 私が持っている私のビルドLinuxマシンでcore.autocrlf = input
  • を実行している開発マシンで行末の正規化を実行しgit rm --cached -r . && git reset --hard && git add . && git commit -m "normalized" && git push develop origin/developました。

私の考えによると、最後のステップでは、最終的に LF エンディングを持つすべてのテキスト ファイルをリポジトリにプッシュする必要があります。その瞬間から、すべてのコミットとチェックアウトは、どのプラットフォームでも行末の衝突に悩まされることはありません。

しかし、ビルド Linuxマシンでレポを複製すると、すぐに変更済みとしてマークされた多数のファイルを取得しました。ビルド マシンの作業コピーで .gitattributes 行を# * text=auto(コメント付き) に変更すると、すべてが正常になります。

それはなぜですか、そして私は何を間違っていますか?

4

1 に答える 1

0

うーん、コマンドの順序をごちゃまぜにする必要があるようです:「git reset --hard」は最後に来る必要があります。そうしないと、git add が実際にインデックスに何かを追加することがわかりません...

于 2013-12-23T14:11:26.920 に答える