2017-10-23 17 views
0

バージョン管理されていないプロジェクトディレクトリをサブディレクトリ(A)と仮定します。 1年後、そのディレクトリはコピーされ、さらに開発が行われます(A ')。オーバーレイA '以前のプロジェクトA project:削除するGitユースケース/パターンを削除する必要がなくなったファイルは削除しますか?

私はGitに以前のバージョンAを追加しました。バージョン管理の精神で、AファイルをAファイルにコピーしたいのですが(結局同じプロジェクトです)、後でA版には存在しなくなったファイルを体系的に削除しようとしています。

私はグーグルでかなりの時間を過ごしましたが、この状況のベストプラクティスを見つけることができないようです(よく考えています)。頻繁に発生するので、プルする方法についてはよく知られている「レシピ」がありますカスタムコードを書くことなくそれをオフにします。

git-diff --diff-filter = D( "Deleted")を使用すると、Aの「残余」がソース管理に長くなるようにrmを生成できますか?

+0

なぜこれをやろうとしていますか?あなたは何を保存しようとしていますか?あなたがどのように答えると、私はより良い返答を手助けするでしょう。 – JDB

+0

@ JDB他のソフトウェアプロジェクトと同じように、バージョン管理下で同じプロジェクトとして追跡された最初のリリースと改訂されたリリースを望みます。 –

+0

ああ...ええ、それを行うためのエレガントな方法はありません。 gitコミットの履歴を変更したいと思うように思えます。それは可能ですが、非常に乱雑で進行中の作業には大きな問題になります。基本的に 'A'プロジェクトでディレクトリを' git init'してからコミットを追加します。次に、あなたの原点を設定し、あなたのマスターブランチをフェッチしてください。それから、あなたはマスターを「A」で再分配する必要があります。それは、あなたがすでに持っている開発者やリリースブランチを含む、拠点を持たないブランチを持っている人のための小さな災害を引き起こします。 – JDB

答えて

0

AA'は異なるコードバージョンの2つの異なるディレクトリで、新しいgit repoを作成している場合は、実際にはかなり簡単です。

すでにAファイルを使ってgit repoをセットアップしているので、repoのディレクトリ内のすべてを削除するだけです(もちろん、gitファイルやフォルダは除きます)。 A'、次に新しいコミットを追加します。

だから、あなたのgitの履歴は次のようになります。

z9y8x7w6v current state (A') 
a1b2c3d4e f1rst p0st (A) 

あなたがAA'間の変化を比較することができますが、任意の新しい仕事はA'でオフに開始されます。これにより、gitの履歴に古いアーチファクトとしてAがあることが保証されます。

サイドノート:これについて今考えていることは良いことです。あなたが待っていて、すべての作業がA'のレポで終了した場合、Aを履歴に挿入することは非常に困難でした。

+0

それは簡単ですか? Duh ...ありがとう@JDB! –

関連する問題