2012-01-19 96 views
4

我有三個壓縮文件夾,名稱分別爲[1,2,3],每個文件夾都包含相同的項目1,其中最早的項目是1,最近的項目是3。我正在尋找一種方法將所有這些合併到3個git提交中,並且3個最重要的提交是文件夾內容。版本控制:從zip到git

我想我可以做到以下幾點:

  1. 解壓1.
  2. 取1米的地方。它的內容到一個新的文件夾。
  3. git init
  4. git add -A
  5. git commit -m "first commit
  6. 解壓2
  7. 從2
  8. git add -A
  9. git commit -m "second commit
  10. 更換從與內容的新文件夾中的內容解壓縮2
  11. 替換內容從與內容的新文件夾,從3
  12. git add -A
  13. git commit -m "third commit

誰能告訴我,如果這是爲了做到這一點,最好的方法是什麼?

+0

除了第一步,git init步驟似乎並不必要。 –

+0

額外的git init的複製和粘貼錯誤謝謝! – ThomasReggi

回答

2

每次運行git init時,都會創建一個空的存儲庫。

如果只有三個文件夾,並且只做一次,那麼這將起作用(如果您省略git init)。只要確保不要清除.git文件夾。

您甚至可以解壓縮這三個文件夾並將.git文件夾連續移動到每個文件夾中,並在每個單獨的文件夾中提交,最終文件夾將作爲新存儲庫的開始。

+0

額外的git init的複製和粘貼錯誤,謝謝! – ThomasReggi

0

是的。只要確保完全替換內容,並捕獲所有添加和刪除的文件。

4

這是我會怎麼處理這

獲取版本1 COMMITED

mkdir MyProj 
cd MyProj 
git init 
# unzip version1 into MyProj 
git add -A 
git commit -m "Version 1" 

獲得第2版致力於

# delete everything but the .git directory in MyProject 
# unzip version2 into MyProj 
git add -A 
git commit -m "Version 2" 

獲得第3版致力於

重複上面的版本3該zip文件。

5

將您的三個zip文件解壓縮到三個不同的目錄中。

第四個目錄中初始化git回購。

然後利用--work-tree option的,它允許從一個git回購執行一個git命令,但與位於以外的內容所述git倉庫:

cd /your/git/repo 
git add --work-tree=/path/to/zip1 -A . 
git commit -m "Add v1" 
git add --work-tree=/path/to/zip2 -A . 
git commit -m "Add v1" 
git add --work-tree=/path/to/zip3 -A . 
git commit -m "Add v3" 

換句話說,可以添加不同的內容,而無需從你的git目錄移動!