私はgitに比較的慣れていません。以前にSubversionを使用しました。
ほとんどのグラフィカルgitフロントエンドとIDEプラグインは、ファイルの名前が変更されている場合、ファイルの履歴を表示できないようです。私が使うとき
git log --follow
コマンドラインでは、名前を変更してもログ全体を確認できます。
Linus Torvalds氏によると、-followスイッチは「SVN noob」を喜ばせるものであり、深刻なgitユーザーはそれを使用しません。
--followは完全なハックであり、親子関係や素敵なリビジョングラフなどについて何も知らなかった元SVNユーザーを満足させるだけのものです。
これは完全に基本的なものではありませんが、「-follow」の現在の実装は、実際に不可欠なものではなく、リビジョンウォーキングロジックにボルトで固定された迅速な前処理です。
それは文字通り、「実際のgit機能」としてではなく、「SVN noob」を満足させるものとして設計されました。アイデアは、全体像で問題の名前を変更するという(壊れた)思考の考え方から逃れることでした。
私の質問:名前が変更されたときに、ハードコアのgitユーザーがファイルの履歴をどのように取得しますか?これを行う「本当の」方法は何ですか?
/bin/mv oldfile newfile
実行するgit add newfile; git rm oldfile
と、結果はの結果と区別がつきませんgit mv oldfile newfile
。
--color-moved
みることができますdiff
。
git mv oldfile newfile
名前の変更がまったく記録されない-1 つのファイルを削除して別のファイルを追加するのと同じです。gitは、事後のコミットごとに、ツリーの状態から名前の変更とコピーのみを実行します。