1

ディレクトリ TestDirectory の名前が小文字 (testdirectory) に変更された後、すべてのファイル (a.html および b.html) が変更されたものとして表示され、git reset --hard でさえ作業ツリーがリセットされません。

Git は常に次のように言います。

#   modified:   TestDirectory/a.html
#   modified:   TestDirectory/b.html

作業ツリーを変更されていない状態にリセットする機能はありません。次のコマンドはどれも役に立ちません。

git reset --hard

git checkout -- TestDirectory/a.html

なぜこれが起こるのか、私に何ができるのかわかりません。gitバグですか?

名前の変更は私が追加したのではなく、別の git ユーザーが追加したものです。

git バージョン 1.6.4

Mac OS X 10.6 を実行しています

4

2 に答える 2

2

約1時間プレイした後、私の解決策はtestdirectory/a.htmlとtestdirectory/b.htmlを手動で削除することでした-その後、gitはそれらを「削除済み」と報告しました(実際には削除したくありません)が、それは私にできることを与えました問題が別のユーザーによって修正されたときに git pull して変更を取得します。

簡単な手順:

  1. ファイル testdirectory/a.html および testdirectory/b.html を削除します
  2. gitプル

注: 以前は git pull を実行できず、マージ競合エラーが発生していました。

何が起こったのかはっきりとはわかりませんでしたが、私のケースは解決しました。私の意見では、Git は Perl のようにまだ非常に複雑であり、コマンドは主にユーザーの意図ではなく git の内部を反映しています :-)

于 2010-08-16T15:30:55.310 に答える
0

git が行末を書き直したかどうかを確認できます (git diff は、行末が異なるだけで、ファイル自体が置き換えられたことを示します)。このような場合は、Git を使用した最適な CRLF (キャリッジ リターン、ライン フィード) 処理戦略は何ですか? を参照してください。.

于 2010-08-16T15:12:09.623 に答える