2009-04-28 96 views
8

我想要一個主要由二進制文件組成的git倉庫。在git倉庫中有效存儲二進制文件

我需要跟蹤更改,添加和刪除的文件到存儲庫,但我不希望git版本自己的文件的內容。

換句話說,我只需要讓git跟蹤更改(更改日誌),而不是內容。

這甚至可能與git?

我應該使用別的東西嗎?

+0

爲什麼你不想專門跟蹤內容? – 2011-01-31 11:46:21

+3

我不知道@Dema的原因是什麼,但是git-annex爲此描述了兩個用例:http://git-annex.branchable.com/ – toolbear 2011-04-21 22:26:14

+0

這是一個http://stackoverflow.com/questions的詭計/ 540535/manage-large-binary-files-with-git – dbn 2013-02-26 22:04:10

回答

9

git是一個內容跟蹤器,所以如果你不想跟蹤內容,它聽起來像是這個工作的錯誤工具。不過,我不確定如何在不跟蹤內容的情況下跟蹤文件更改。

2

如果您不想存儲文件夾,那麼您可以在文件上使用二進制diff工具,然後將輸出提交到版本控制中。然後可以將任何文本更改日誌條目輸入到提交消息中。

1

也許我不明白你的問題,但如果你在文本文件中存儲所有文件的時間戳呢?然後,您可以僅在版本控制中存儲該文件,並讓您的VCS區分它的不同版本。

0

但我不想讓git版本化文件本身的內容。

這正是Git Large File Storage (LFS)所做的(由GitHub,2015年4月)。

該項目爲git-lfs(見git-lfs.github.com)與服務器支持它一個測試:lfs-test-server
您可以在git倉庫元數據只存儲,以及大文件的其他地方。

https://cloud.githubusercontent.com/assets/1319791/7051226/c4570828-ddf4-11e4-87eb-8fc165e5ece4.gif

  • 大文件分別同步到一個可配置的Git LFS服務器通過HTTPS,這樣你就不會在你把你的Git倉庫的限制。

  • 大文件只在簽出時從服務器同步,因此當不需要時,本地存儲庫不會承載每個文件的每個版本的權重。

  • 存儲在Git中的元數據是可擴展的以供將來使用。它目前包含文件內容的哈希值和文件大小,以便客戶端可以在下載時顯示進度條或選擇不進行大量下載。

相關問題