2015-07-13 75 views
2

情況

  • 我有一個項目,我一直在使用版本控制系統(VCS)之前一直在努力。
  • 我以前爲了保存我的作品的「快照」以便回顧歷史,我曾經在複製和粘貼整個項目時取得了進展。
  • 從那時起,我轉向使用版本控制系統來處理其他更新的項目,因爲使用「複製,粘貼 - 快照」方法已成爲空間的大量浪費,並且效用較差。

目標

我想創建一個正確代表發展階段的儲存庫。如何用快照創建自己的歷史記錄的git存儲庫?

我的計劃

  • 創建一個新的存儲庫,並使用最早的快照文件夾初始化。
  • 通過用下一個更新的快照文件夾替換舊文件夾進行提交,同時保留隱藏的.git文件夾。
  • 重複第2步,直到git更新爲最近的快照,即當前工作目錄。

問題

  • 這是做到這一點的可行方法?
  • 如果是的話,我可以對這種方法做出什麼改進?
  • 如果不是,我該怎麼做?

其他信息

我願意用GitHub的客戶端,Git的猛砸,git的外殼,或任何真正爲了做到這一點。我對GitHub客戶端軟件感到非常自在,但我很樂意學習其他方法。

擴展問題

如果我想正確的日期,我應該通過環境變量,改變他們GIT_AUTHOR_DATEGIT_COMMITTER_DATE(我不知道該怎麼做),或者是不值得冒這個險?或者文件的元數據(屬性)在提交時會保存這些信息?這主要是出於美學原因(據我所能想到的),因爲我會按時間順序提交文件。

編輯:結果

我以前在「我的計劃」中列出的步驟,它完美地工作了。

+1

可能會有一些改進,但你腦子裏應該工作得很好。 – hobbs

+2

請參閱[如何在將項目導入Git時保留後續版本的日期?](http://stackoverflow.com/questions/28090026/how-can-i-preserve-the-dates-of-the-連續版本,而進口一個項目) – Jubobs

+0

我接受eckes的答案,因爲它具體回答我問的,但我想提一下@Jubobs評論涉及到一個非常類似的問題,但事實上不同我的問題是指整個提交,而Jubobs的鏈接指的是分段,對於其他類似問題的用戶可能值得閱讀。 – Khillasaurus

回答

3

恕我直言,你的計劃方法是好的。

如果說下一個最近的快照文件夾取代舊的文件夾,你需要照顧,你真的替換:刪除回購以外的所有.git文件夾,然後添加一個快照的內容夾。

如果你不這樣做,你不會注意到快照之間的刪除正確。

我不會玩GIT_AUTHOR_DATEGIT_COMMITTER_DATE,除非你有一定的提交與某個日期的關係(例如,你需要知道你的網站的哪個版本在01/01/2015或者類似的東西上是活的) 。

即使您需要將某個提交連接到某個特定狀態,在這種情況下我也會選擇標記(例如git tag website_01_01_2015)。

+2

請注意,您可以使用'--author'和'--date'標誌和'git commit'來覆蓋作者和作者日期。 – Jubobs

+2

此外,您可以從任意樹添加快照,'git --work-tree =/path/to/snapshot add .',可能不需要進行任何複製。 – jthill

+1

如果您知道--date/GIT_AUTHOR_DATE的適當日期,請繼續使用它們。提交日期不應該改變,因爲它意味着反映更改提交到版本控制的時間。 – hobbs

相關問題