2014-09-28 137 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 

这第二个命令也可以通过管道输送到一个文本编辑器变种。