[解決済み】Gitのコピーファイルで履歴を残す【重複
質問
Gitで少し混乱した質問があります。
例えば、次のようなファイルがあるとします。
dir1/A.txt
コミットされ、gitはコミットの履歴を保持します。
次に、このファイルを
dir2/A.txt
(移動ではなく、コピー)。
私は
git mv
コマンドが必要なのですが
dir2/A.txt
と同じコミット履歴を持つようにします。
dir1/A.txt
と
dir1/A.txt
がまだ残っていること。
を更新する予定はありません。
A.txt
コピーが作成されると、今後の作業はすべて
dir2/A.txt
この状況は、Javaベースのモジュール(maven化されたプロジェクト)であり、私たちの顧客が実行時に2つの異なるバージョンを持つ能力を持つように、コードの新しいバージョンを作成する必要があり、最初のバージョンは、アライメントが完了したときに削除されます。 もちろん、mavenのバージョニングを使うことはできますが、私はGitの初心者で、Gitがここで何を提供できるかに興味があるだけです。
どのように解決するのですか?
subversionとは異なり、gitにはファイルごとの履歴がありません。コミットデータ構造を見てみると、前のコミットとこのコミットの新しいツリーオブジェクトを指しているだけです。コミットオブジェクトには、そのコミットによってどのファイルが変更されたのか、また、その変更の性質についての明示的な情報は保存されていません。
変更点を検査するツールは、ヒューリスティックに基づいてリネームを検出することができます。たとえば "git diff" には -M オプションがあり、リネームの検出を有効にすることができます。そのため、リネームを行った場合、"git diff" ではあるファイルが削除され、別のファイルが作成されたと表示されるかもしれません。しかし "git diff -M" では実際に移動を検出し、それに応じて変更を表示します (詳しくは "man git diff" をご覧下さい)。
つまり、gitでは、変更をどのようにコミットするかではなく、コミットした変更を後でどのように見るかの問題なのです。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ERROR: Error cloning remote repo 'origin'.
-
[解決済み】GitHubのメッセージの意味: メールのプライバシー制限のためプッシュが拒否されました。
-
[解決済み】ローカルに変更があるにもかかわらず、git pushが「すべて最新」と言う
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] 無効なVCSルートマッピング - 私のプロジェクトで3つのエラーが発生しました。
-
[解決済み] Git エラー : 'upstream' は git リポジトリでないようです。
-
[解決済み] git mv` とは対照的に、git コピーファイル
-
[解決済み] Gitによるファイルコピー操作の記録