2011-12-08 7 views
3

私は最近、新しいプロジェクトを作成するときにGitを使い始めました。それまでは、プロジェクトの定期的なバックアップは各自のソースを圧縮するだけでした。だから私は今、各(古い)プロジェクトのためのいくつかのDD.MM.YYYY.zipファイルを持っています - 各プロジェクトは1つだけのブランチを持っています。既存のプロジェクトをgitに移行

これらの.zipファイルをすべて削除し、すべてをGitに移植したいと考えています。ここに私が考えたものがあります:

Create a new repository. 

    git init 

Copy the files from the oldest .zip file into the repository. 

    git add ... 
    git commit ... 

Delete the files copied from the oldest .zip file. 
Copy the files from the second oldest .zip file into the repository. 

    git add ... 
    git commit ... 

Delete the files copied from the second oldest .zip file. 
... 

これはうまくいくのですか?私が欲しいものを達成するためのより良い解決策はありますか?追加



は、いくつかの(古い)のプロジェクトのために私は、最新のソースと継続的なプログラミングにGitリポジトリを開始しました。これらのプロジェクトにはまだいくつかのDD.MM.YYYY.zipファイルがあります。プロジェクトの開始にコミットする方法はありますか? (ばかな質問であってもよいが、私に何か他のものを提案して自由に感じるかもしれません。)

答えて

3

あなたが行う場合、それは(解凍した各アーカイブで)それぞれの新しいワーキングツリーのコンテンツのため、動作します:

git add -A . 

すなわち、 Gitに新しいファイルや変更されたファイルを追加してもらい、もう存在しないファイルを削除したい場合は、

orphan branchを作成し、圧縮履歴をインポートして、現在のブランチをその上にリベースすることもできます。

+0

追加部分について:私は「レガシー」と呼ばれる新しい(孤立した)ブランチを作成し、その上に「マスター」をリベースしますか?私の通常の働く支店は、それから「遺産」と呼ばれていませんか? –

1

前述のとおり、非常に簡単にzipアーカイブをgitリポジトリに変換できます。

いくつかの新しい開発を関連するが同一ではないリポジトリとマージするために、2つを1つにリンクすることができます。おそらくリベースあなたが必要なすべてのですが、私はこれをしたとき、私は次のコマンドを使用して

git remote add jdc file:///opt/src/tile-qt-jdc 
git fetch jdc 
git ls-tree 1519481 
git read-tree -m 1519481 
git checkout-index -f -u -a 

read-treeが与えられたツリーにインデックスを設定するための興味深い方法であるblog articleでもう少し議論を掲載。 「グラフト」もありますが、これは私には役に立たないようです。

関連する問題