[解決済み] Gitによるファイルコピー操作の記録
質問
git-mvでファイルを移動すると、ステータスにファイル名が変更されたと表示され、一部を変更してもほぼ同じものとみなされます(履歴を追えるので良いことです)。
ファイルをコピーするとき、元のファイルには新しいコピーと関連づけたい履歴があります。
ファイルを移動してから元の場所に再チェックアウトしようとしましたが、一度移動すると、gitは元の場所をチェックアウトさせてくれません。
ファイルシステムをコピーしてからファイルを追加しようとしたのですが、git はそれを新しいファイルとしてリストアップします。
ファイルのリネームや移動を記録するのと同じように、gitにファイルのコピー操作を記録させ、その履歴を元のファイルに遡らせる方法はないのでしょうか?
解決方法は?
Git はリネーム・トラッキングもコピー・トラッキングも行いません。
記録
は、リネームやコピーを行います。代わりに行うのは、リネームとコピー
検出
. でリネーム検出を要求できます。
git diff
(そして
git show
を使用することで
-M
オプションを使用すると、変更されたファイルでの追加のコピー検出を要求することができます。
-C
オプションで、すべてのファイルに対してより高価なコピー検出を要求することができます。
-C -C
. を参照してください。
git-diff(ギットディフ
の man ページを参照してください。
-C -C
を意味します。
-C
であり、かつ
-C
を意味します。
-M
.
-M
のショートカットです。
--find-renames
,
-C
というのは
--find-copies
と
-C -C
は、次のように表記することもできます。
--find-copies-harder
.
を設定することで、常にリネーム検出を行うように設定することもできます。
diff.renames
をブール値の真偽で指定します (例.
true
または
1
に設定することで、コピー検出を行うよう git に要求することができます。
copy
または
copies
. を参照してください。
ギットコンフィグ
の man ページを参照してください。
また
-l
オプションで
git diff
と関連するコンフィグ変数
diff.renameLimit
.
注意事項
git log <pathspec>
は、Git では異なる動作をします。
<pathspec>
はパスの区切り文字のセットで、パスには(サブ)ディレクトリ名を指定することができます。 これは履歴をフィルタリングし、簡略化します。
以前
リネームとコピーの検出が活躍します。 リネームやコピーを追いかけたい場合は
git log --follow <filename>
(現在は少し制限されており、1つのファイルに対してのみ機能します)。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[解決済み】マージの競合が発生した git stash pop の取り消し
-
[解決済み】Gitのエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み】gitの「not something we can merge」エラーの解決方法
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] 短いGitバージョンのハッシュを取得する
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] Gitのエラー「object file ... is empty」はどうすれば直せますか?
-
[解決済み] git mv` とは対照的に、git コピーファイル
-
[解決済み】Gitのコピーファイルで履歴を残す【重複