2011-12-21 54 views
0

我有一個使用git來跟蹤用戶內容更改的CMS - 我讓他們每天晚上彙總到一次提交中。正如你可以想象的那樣,每天都有一次提交了一個有趣的提交日誌。自動提交重定金

我想整理一下,並認爲我可以通過將提交(約100左右)重新提交爲一次提交來完成此操作。這是對這些自動提交適當的策略嗎?如果在兩次或多次提交中引用同一文件,是否會碰到碰撞?有些東西似乎太簡單了,只是將100重新分爲1個。

E:這些是內容更改,而不是代碼庫更改,所以它們並不重要。爲了清理歷史記錄,每隔一段時間進行一次滾動修改將會很好。

+0

嗯......你爲什麼要這樣做? Git和其他VCS的全部目的是跟蹤變化。如果你將100放入1,你將失去所有的歷史。如果歷史不是你想要的,那麼你可能不應該使用VCS。 – Alec 2011-12-21 00:52:47

+0

因爲這些是內容更改,而不是代碼庫更改。我跟蹤兩者。內容更改的價值遠遠低於實際將它們放在一起的部分。我不需要內容的遺留信息。 – Nic 2011-12-21 00:54:30

+0

歡迎來到StackOverflow。這不是所問問題的答案;這是一個評論,要求澄清爲什麼提問者會想做點什麼。它應該作爲評論發佈。如果您還沒有這樣做,請花幾分鐘時間閱讀[FAQ](http://stackoverflow.com/faq)。謝謝。 :) – 2011-12-21 01:01:38

回答

0

通過運行rebase -i <upstream>並在Git提供的提示中將100個提交標記爲「壓扁」提交,您應該沒有問題。 Git會一個接一個地應用每個補丁,並且最終會提供一個反映最終提交時庫的狀態的單獨提交。選擇「fixup」會做同樣的事情,但會放棄中間提交消息(這聽起來更像你正在尋找的東西)。

如果您在重新綁定時遇到一些無法預料的問題,則簡單的git rebase --abort會將您恢復到原始存儲庫和版本歷史記錄。

然而,Git非常節省空間,所以如果你不想丟失歷史,你可以嘗試運行git gc。這將運行Git「內務」任務,例如將提交壓縮到「Packfiles」中。如果用戶內容每天都不會發生顯着變化,那麼Git應該能夠非常緊密地壓縮您的歷史記錄。 git gc --aggressive將更難以壓縮提交。