2012-07-05 129 views
2

這是關於git handling binary files和如何git can't follow file history very well的一些類似的「回答」問題的後續。Git和二進制文件的歷史

因此,git無法正常關注文件歷史記錄。哎呀,即使git log --follow -M100% --name-only -- path-to-my-file不會這樣做,我是supposedly告訴它只跟隨100%相似的文件!

然後we are supposed to use other ways尋找到,如平分誰。這裏的問題是:這些似乎不適用於二進制文件。而且accodring to Linus我們不可能在短時間內完全工作git log --follow

最終我這裏的問題是

我們是否有任何自動化的方式來實現某種git log於跟蹤改名/移動的二進制文件?

或者也許有類似的版本控制系統但有這個功能?

作爲一種解決方案的例子,我會接受一些安全和簡單的方法using filter-branch,但我從來沒有玩過它,並不知道它有多危險。在發佈這樣一個程序後,我們是否能夠沒有問題地推拉?我們可以輕鬆還原嗎?我們可以追蹤舊名稱/參考而不會恢復嗎?你知道,在版本控制系統中,對歷史的訪問就是一切。

回答

0

過濾分支是安全的。只要不改變您提供的腳本中的任何內容。我也很喜歡-M選項。 100%不適用於普通文件。嘗試一下。

+0

確定嗎?就我而言,重寫歷史總是危險的。它是否會在克隆回購中被正確地拉扯和推?我能隨時輕鬆恢復嗎?我可以追溯舊名稱而不恢復它嗎? – cregox 2012-07-05 19:40:01

+0

如果您喜歡,請進行備份。但是索引過濾器和工作樹過濾器除了執行你所說的每個提交執行的內容外,什麼也不做。 – 2012-07-05 21:06:02

+0

這並不是那麼緊迫,我會經歷備份和測試所有的麻煩......但是你沒有回答任何問題! :d – cregox 2012-07-06 16:09:05