削除して別のフォルダーに再作成した後、ファイルのGit履歴を保持する

clever_bassi

私は次のシナリオを持っています:

  1. コミット1でsrc / GetData.csというファイルを削除しました。
  2. commit5でsrc / Get /GetDataNew.csというファイルを作成しました。
  3. 2のファイルの名前をcommit7のsrc / Get /GetData.csに変更しました。

1と3のファイルは、マイナーな変更を加えてほとんど同じですが、何度か繰り返したため、まったく新しいファイルを作成し、古いファイルを削除することになりました。ファイル1のgit履歴をファイル3に保存/移動する方法はありますか?

私が考えることができる1つのアプローチは、古いファイルを削除したコミットに戻ってから、

git mv src / GetData.cs src / Get / GetData.cs

それを新しいフォルダに移動しますが、その間に他の多くのコミットと変更があったので、これを避けたいと思います。

前もって感謝します。

火曜日

Gitにはファイル履歴がありません。保存または復元するものはありません。

Gitにはコミットがあり、コミット履歴です。それだけです—それがあなたが持っているすべてです。コミットを追加して、履歴を追加します。

さて、コミットにファイルが含まれているのは事実です。Gitにコミット履歴をウォークスルーするように依頼できますが、特定のコミット、つまり特定のファイルに名前でアクセスするコミットのみをリストします。これを行うと、名前が時間の経過とともに変更されたファイルですぐに問題が発生します。

これは、あるファイルが「同じ」ファイルであるという意味になります。これは哲学的な問題であり、良い答えがないことを意味します。:-)これの極端な例として、私の祖父の斧のパラドックスを考えてみましょう。私の父が頭を交換し、私がハンドルを交換しましたが、これは私の祖父の斧です。またはより一般的には、テセウスの船

あなたが追加した場合:Gitリポジトリの答えはある--followgit logあなたがそれを告げているにコマンドすべてのことは、ファイルI名を変更しないコミット(出力目的への上場のために)スキップし、Gitはファイルがされているようだコミットを見ていきます、削除、および持っている他のいくつかの名前のファイルが存在し、親にコミットするかどうかを調べる類似十分なコンテンツにする呼び出す「同じファイル」それは。マージコミットではない単一のコミットホップ全体でコンテンツが100%同一である場合、Gitは常にこのファイルを(そして非常に迅速に)見つけます。他の場合では、あなたはあなたのチャンスを取ります。Gitが名前が変更されたことを検出した場合、Gitは続行しますgit log1つのファイルを変更したコミットを探していますが、以前の名前で保存されているファイルを変更したコミットを探しています

Gitの他の答えは次のとおりです:なぜあなたは気にしますか?各スナップショットは、状態全体を完全に保持します。コミット1またはコミット7をチェックアウトする場合、なぜsrc/GetData.cs「同じ」ファイルであるかどうかを気にするのsrc/Get/GetData.csですか?スナップショットに永久に(または少なくともコミットが履歴に存在する限り)保存される正しい名前で正しいファイルの内容が保持されます。

オペレーティングシステムのファイルID概念に関係して、気にする理由がある場合があります。Gitはそれらを気にしません。)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

コミット履歴のある別のフォルダーにファイルを移動しますか?

分類Dev

gitの履歴とともにファイルを別のフォルダーに移動する

分類Dev

Git:1人の作成者を除いて履歴からフォルダーを削除します

分類Dev

履歴ファイルを削除した後、履歴に古いコマンドが残っているのはなぜですか?

分類Dev

ファイルのセットを除いて、Git履歴からフォルダーの内容を削除します

分類Dev

履歴を保持しながら、特定のファイルをあるgitリポジトリから別のgitリポジトリにコピーする方法

分類Dev

移動したファイルの履歴をGitに復元する

分類Dev

SVN-ファイルを削除して再作成した後、ファイルから履歴を復元します

分類Dev

すべてのgit履歴からファイルを削除します

分類Dev

誤ってファイルを削除して別の場所に追加し直した後、git履歴を修正するにはどうすればよいですか?

分類Dev

履歴を保持しながら、いくつかのフォルダーとファイルをgitリポジトリから別のリポジトリにコピーします

分類Dev

BFGを使用してgit履歴からフォルダーを完全に削除する方法

分類Dev

特定のフォルダーを除くすべてをgit履歴から削除します

分類Dev

gitでファイルの名前を変更し、履歴を保持します

分類Dev

gitの履歴で特定の作成者が触れたすべてのファイルを検索しますか?

分類Dev

名前を変更したファイルの履歴を保持しながら、削除されたファイルのgit履歴をクリーンアップします

分類Dev

2つのファイルを1つに結合し、履歴を保持するgit

分類Dev

新しいファイルを削除して再作成した後、ファイルのListViewを作成します

分類Dev

Git:履歴を保持しながら、Windowsで名前が重複している(Casedが異なる)2つのフォルダーを調整する

分類Dev

マージはコミットの履歴のためにフォルダを削除します

分類Dev

元の拡張子を保持したまま、あるフォルダから別のフォルダにファイル名をコピーします

分類Dev

履歴を保持する同じgitリポジトリ内のあるフォルダから別のフォルダにファイルを移動する方法

分類Dev

ファイルを別のリポジトリに分割し、履歴を保持します

分類Dev

削除されたファイルをgitの履歴で復元する

分類Dev

.git フォルダーを削除した後、git で削除されたファイルを回復する

分類Dev

ファイルを別のフォルダにコピーして削除する方法

分類Dev

フォルダからサブモジュールリポジトリを作成し、そのgitコミット履歴を保持します

分類Dev

ファイル履歴を保存するためのVSCode'git mv '?

分類Dev

git履歴全体のフォルダーサイズを取得する方法

Related 関連記事

  1. 1

    コミット履歴のある別のフォルダーにファイルを移動しますか?

  2. 2

    gitの履歴とともにファイルを別のフォルダーに移動する

  3. 3

    Git:1人の作成者を除いて履歴からフォルダーを削除します

  4. 4

    履歴ファイルを削除した後、履歴に古いコマンドが残っているのはなぜですか?

  5. 5

    ファイルのセットを除いて、Git履歴からフォルダーの内容を削除します

  6. 6

    履歴を保持しながら、特定のファイルをあるgitリポジトリから別のgitリポジトリにコピーする方法

  7. 7

    移動したファイルの履歴をGitに復元する

  8. 8

    SVN-ファイルを削除して再作成した後、ファイルから履歴を復元します

  9. 9

    すべてのgit履歴からファイルを削除します

  10. 10

    誤ってファイルを削除して別の場所に追加し直した後、git履歴を修正するにはどうすればよいですか?

  11. 11

    履歴を保持しながら、いくつかのフォルダーとファイルをgitリポジトリから別のリポジトリにコピーします

  12. 12

    BFGを使用してgit履歴からフォルダーを完全に削除する方法

  13. 13

    特定のフォルダーを除くすべてをgit履歴から削除します

  14. 14

    gitでファイルの名前を変更し、履歴を保持します

  15. 15

    gitの履歴で特定の作成者が触れたすべてのファイルを検索しますか?

  16. 16

    名前を変更したファイルの履歴を保持しながら、削除されたファイルのgit履歴をクリーンアップします

  17. 17

    2つのファイルを1つに結合し、履歴を保持するgit

  18. 18

    新しいファイルを削除して再作成した後、ファイルのListViewを作成します

  19. 19

    Git:履歴を保持しながら、Windowsで名前が重複している(Casedが異なる)2つのフォルダーを調整する

  20. 20

    マージはコミットの履歴のためにフォルダを削除します

  21. 21

    元の拡張子を保持したまま、あるフォルダから別のフォルダにファイル名をコピーします

  22. 22

    履歴を保持する同じgitリポジトリ内のあるフォルダから別のフォルダにファイルを移動する方法

  23. 23

    ファイルを別のリポジトリに分割し、履歴を保持します

  24. 24

    削除されたファイルをgitの履歴で復元する

  25. 25

    .git フォルダーを削除した後、git で削除されたファイルを回復する

  26. 26

    ファイルを別のフォルダにコピーして削除する方法

  27. 27

    フォルダからサブモジュールリポジトリを作成し、そのgitコミット履歴を保持します

  28. 28

    ファイル履歴を保存するためのVSCode'git mv '?

  29. 29

    git履歴全体のフォルダーサイズを取得する方法

ホットタグ

アーカイブ