2

誤って mv を使用して、git の下にあるファイルの名前を変更してしまいました。ファイルの名前を同じままで小文字から大文字に変更しました。

mv abc.java ABC.java

その後、ファイルを変更してコミットしました。

このファイルの実際の git rename を行うにはどうすればよいですか? Git bash は、ABC.java と abc.java の違いを理解していないようです。

マスターで(他の人が)何が変更されたのかわかりませんが、ブランチに移動した後、変更をファイルにコミットできなくなりました。古いファイル インデックスがまだ存在していると表示されます。

$ git commit -m "renamed to uppercase" ABC.java fatal: ファイル エイリアス 'dir1/ABC.java' を追加しません ('dir1/abc.java' は既にインデックスに存在します)

git status を実行すると、名前が変更されたファイルが表示されますが、名前が変更されたファイルをコミットできません。abc.java を削除しようとすると (これは実際には少なくともローカルには存在しません)、再び (大文字と小文字を区別しないためだと思います) git は新しいものを削除します。

これから新しいレポを複製すると、レポは古い名前(abc.java)のファイルを引き出しますが、最近失敗したものまですべての変更がそこにあります。

4

5 に答える 5

5

ファイルパスパラメーターを指定しない単純な git commit -m "message" でうまくいきました。それは私が思うにインデックスを更新したか、少なくとも最終的にabcがABCに更新されることを認識することができました..ありがとうございました..

于 2016-03-04T16:39:30.183 に答える
0

できるよ:

$ git mv {abc,ABC}.java
于 2016-03-04T07:35:54.003 に答える
0

abc.java に変更を加えたコミットを知りたい場合は、次を使用できます。

git log --follow abc.java

結果で、名前を変更したコミットを見つけることができます。

ファイルを元の名前に復元するには、フラグを使用git resetして--soft、変更を破棄せずにステージングを解除し、修正して再度コミットできるようにします。

危険な可能性があることをしようとする前に、git reset に関する次のリンクを読んでよく理解することをお勧めします。

Atlassian による Git リセット チュートリアル

Git リセットの謎解き

于 2016-03-04T09:32:18.193 に答える