OSネイティブコマンドまたはGUIを使用していくつかのファイルを移動すると、gitはトラックを失い、思考ファイルが削除され、新しいファイルが作成されます。 git mv
コマンドを使用して動作します。しかし、フォルダやワイルドカードの移動はサポートしていません。ファイル履歴のないフォルダの再編成
履歴を見失わずにファイルやフォルダを再編成する最良の方法は何ですか?
OSネイティブコマンドまたはGUIを使用していくつかのファイルを移動すると、gitはトラックを失い、思考ファイルが削除され、新しいファイルが作成されます。 git mv
コマンドを使用して動作します。しかし、フォルダやワイルドカードの移動はサポートしていません。ファイル履歴のないフォルダの再編成
履歴を見失わずにファイルやフォルダを再編成する最良の方法は何ですか?
Git by designは、ファイルの名前の変更を記録せず、実行時にファイルの履歴を計算します。これには、ファイルやフォルダを再編成するための「最良の方法」はないという結論があります。しかし、Gitはファイルの内容を比較して名前を決定するので、ファイルとを内容を変更するには、ファイルの名前変更とコミットを含むコミットを行うのが良いでしょうコンテンツの変更について
Gitの名前の変更方法に関するフラグについては、-C
と-M
のオプションgit log
を参照してください。
gitのプロトコルのため、私たちはどのようにファイルを移動するのですか?git commit
はほとんど影響しません。コミットは事実上すべてのファイルのスナップショットであり、以前のコミットとの違いはありません。
これは、実際には「追跡」することはできませんが、ファイルの移動を「回復」する必要があることを意味します。
gitコマンド(および多分GUI)によっては、実際にはかなりうまくいきます。これは、私が移動を含むファイルの変更を一覧表示するために使用するgitコマンドです。
$ git log --follow -- [FILES]