2014-09-28 134 views
0

我想單獨跟蹤文件夾中各種文件的版本,而不是跟蹤整個版本庫。Git版本分別控制版本庫中的文件

更具體地說,我將一個文件夾初始化爲git存儲庫。該文件夾包含多個文件。由於一個文件中的更改不一定會影響其他文件,但它們都屬於一個「項目」,所以我想單獨跟蹤這些文件。特別是,我想單獨提交文件,併爲每個文件分別提供日誌。檢出一個特定歷史記錄的早期版本不應該影響整個存儲庫,而只會影響一個特定文件。

我知道我可以解決我的問題,但爲每個文件創建一個專用存儲庫,但我不喜歡這個想法,因爲美學原因。有沒有其他的方式來跟蹤我上面概述的文件?

+0

雖然你可以用git來實現你想要的,但檢出單個文件的不同版本並不是它的_designed_。也許問自己,這些文件是否屬於同一個項目!? – spume 2014-09-28 10:49:12

回答

1

git只跟蹤文件,而不是目錄。你可以在一個目錄下有許多文件,但實際上只有一兩個文件被跟蹤。

要做到這一點,只需將這些文件添加到git。

由於git跟蹤每個文件,每個文件都有自己的歷史記錄。您可以隨時檢查git存儲庫中每個文件的完成情況;只需提供文件名git log,如git log somefile.txt

您也可以checkout a specific file給你知道它的提交散列。 git是一個非常強大的「平臺」(我拒絕稱它爲一個工具,因爲它遠不止這些)。幾乎任何異國情調的工作流程或要求都是可行的 - 它可能不是推薦但git會給你足夠的繩索來吊死你自己。

但是,你所問的只是在git中正常的日常操作。我只會提防「單個文件結帳」的要求。

這個要求最好通過一個存儲庫和一個分支來分別處理每個文件。檢出一個分支會導致你的文件系統「隱藏」所有其他的文件,只給出你關心的文件。

1

許多Git命令對單個文件

git log -- individual_file 
git show commit_hash:individual_file 
git checkout commit_hash -- individual_file 

這第二個命令也可以通過管道輸送到一個文本編輯器變種。