2

プロジェクトにあるいくつかのファイルを移動しましたが、Mac のファインダー内で移動しました。git ソース管理がファイルを追加として扱っていることがわかります。

私はまだコミットをしていません。git status は次を示します。

  • コミットされる変更の下に、更新/移動されたファイルが新しいファイルとしてリストされます
  • コミットのためにステージングされていない変更の下で、更新/移動されたファイルは変更済みとしてリストされ、元のファイルは削除済みとしてリストされます。

Xcode でこれらのファイルとバージョン比較を行うと、ビューアーには履歴がありません。

ここで受け入れられた回答を見て、試してみgit log --follow ./pathtomynewfileました。それは結果をもたらさなかった。

バージョン エディタで変更を表示することは貴重なツールになっているので、このような状況下で引き続き使用したいと考えています。

古いバージョン履歴を新しい、移動されたバージョンに結び付けるにはどうすればよいですか?

4

5 に答える 5

3

Gitは、コミットを行うまで、必ずしも「移動」として何かを表示するわけではありません。この操作は、コミットが実行されたときには識別されませんが、ツール(などgit log --follow)によって事後に実行されます。基本的に、Gitツ​​ールは新しいファイルが履歴に表示されたことを確認すると、そのファイルが由来している可能性のある他のファイルを探します(同じまたは類似のファイルが同じコミットで削除された場合、Gitはそれを移動と呼びます)。

于 2012-08-09T06:10:33.767 に答える
2

git mv、またはgit add新しいファイルとgit rm古いファイルのいずれかを使用します。コミット時に add と rm の両方がインデックスに含まれている必要があります。そうでない場合、git はそれを名前変更として認識しません。

于 2012-08-09T07:47:01.480 に答える
0

変更をロールバックしてから使用します

git mv

そうすれば、ファイルが移動され、git は移動を追跡し、ファイルの履歴を保持します。

于 2012-08-09T06:28:36.873 に答える
0

deletegit が移動をおよびとして表示する可能性が非常に高いですadd。ファイルをgitの外に移動すると、Gitはこれを行います。

結果は同じです。

于 2012-08-09T07:56:26.553 に答える
-1

次の 3 つの手順で、コードの以前の安定バージョンに移動できます。

  • git staging view を使用して、ステージングされたすべてのファイルを削除します。(Macで開く方法がわかりません)
  • git reset --hard HEADを実行し ます。コミットされていないすべてのローカル変更がリセットされますが、まだ git に追加されていない新しく追加されたファイルは削除されません。
  • ここで、git staging ビューに表示されているすべての新しいファイルを手動で削除します。
于 2012-08-09T06:16:13.030 に答える