Git版本单独控制存储库中的文件

时间:2014-09-28 10:41:05

标签: git

我想分别跟踪文件夹中各种文件的版本,而不是跟踪整个存储库。

更具体地说,我将文件夹初始化为git存储库。该文件夹包含多个文件。由于一个文件中的更改不一定会影响其他文件,但它们都属于一个"项目"我想分别跟踪文件。特别是,我想单独提交文件,并为每个文件分别提供日志。签出某个特定历史记录的早期版本不应影响整个存储库,只能影响一个特定文件。

我知道我可以解决我的问题,但为每个文件创建一个专用的存储库,但出于审美原因我不喜欢这个想法。有没有其他方法跟踪我上面概述的文件?

2 个答案:

答案 0 :(得分:2)

git只跟踪文件,而不是目录。您可以在目录下包含许多文件,但实际上只跟踪了一两个文件。

为此,只需将这些文件添加到git。

由于git跟踪每个文件,因此每个文件都有自己的历史记录。您始终可以检查git存储库中每个文件的确切操作;只需将文件名提供给git log,就像git log somefile.txt

一样

你也可以checkout a specific file知道它的提交哈希值。

git是一个非常强大的平台" (我拒绝称它为工具,因为它远不止于此);几乎任何异国情调的工作流程或要求都是可行的 - 它可能不是推荐但是git会给你足够的绳索让自己挂起。

然而,你所要求的只是git中正常的日常操作。我只会警告#34;单一文件结帐"要求。

通过拥有一个存储库以及您希望单独处理的每个文件的分支,可以更好地满足此要求。签出分支将导致您的文件系统隐藏"隐藏"所有其他文件,只给出你关注的文件。

答案 1 :(得分:1)

许多git命令都有各个文件的变体

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

第二个命令也可以通过管道传输给文本编辑器。