2011-07-21 42 views
4

我有一個項目,我想把它放到Git上。我們有許多舊的「zip」快照可用於創建假定歷史沿襲的基礎,再加上一些甚至更老的部分,我仍然可以「找到」許多舊的部分,我仍然想添加到我建立的歷史。如何在git中構建舊項目的歷史?

立即從較新的拉鍊[copy, commit, copy, commit, .. etc.]創建一個譜系並不難,但如何回溯(?)在舊的歷史上?我希望歷史看起來像我按時間順序輸入的,因此可能需要某種re-write

由於團隊規模非常小,可以很容易地處理從草稿版本轉換到「正確」版本的過程,因此這是一個入門實踐練習,並且很容易找到'仍然可以找到'一旦每個人都開始使用git(我寧願我們正在使用git,等待足夠的'歷史找到;-)。

所以問題是我如何追溯移植早期的歷史,然後重新編寫整個回購所以嫁接不顯示?我知道這將重寫全部提交SHA1 ID。

回答

2

你可能想要做的事情在這裏描述: https://softwareengineering.stackexchange.com/questions/33868/script-tool-to-import-series-of-snapshots-each-being-a-new-edition-into-git-po

但​​選項添加到git commit,這樣它會設定任何日期來自zip文件。

+0

這看起來像是建立初始回購的那個。我可能會提出一些合併點,因爲我們有V0,V1,V2,V3'分支'。接下來是整理pre-V0的移植階段(這是Matlab .m文件) –

+0

我已經完全失去了你 – jterrace

+0

對不起。再次,但不同..你的鏈接看起來不錯[+1 +1]。它告訴我如何爲我的每個版本構建一系列提交。然後,我可以將版本序列作爲分支與「合併」一起移植到「主」上。我仍然需要'找到'我matlab.m文件中的舊的歷史記錄,我可以像添加版本0分支一樣添加(使用相同的方法)。 –

0

git rebase -i(交互式底座)可以讓您進行許多有用的歷史修改。請注意,這樣做會使任何人在分發之前創建的分支混亂,導致每個人都重新分配這些分支。

+0

我從來沒有想過在這個光線下重新定位。我感覺又一次重新閱讀了手冊頁。 –

+0

我跟着其他一些鏈接,我認爲在這種情況下,我會最終使用git-filter-branch方法(假設我已經理解了它的手冊頁!)一次完成重寫(沒有互動),在我完成'移植'後。 –