如何在git中跟踪特定修订版上的未修改文件?

时间:2013-10-23 12:13:00

标签: git

说我有一个包含修订版A-B-C-D-E-F-G-H-I-J-K-L-M的仓库。文件foo.txtBGJ中被修改(或创建)。我想另外将修订版CE绑定到foo.txt的历史记录,以便B-C-E-G-J使用关于foo.txt的简单命令,例如git log -- foo.txt 。有没有办法实现这个目标?

如果这是不可能的,还有一个很好的选择吗?

(更多细节如下)

原因是A~M是旧项目的快照,后来被导入git repo。在课程期间发生了一些事情,并且快照C和E上的foo.txt的实际状态缺失了,实际上foo.txt都被修改了。但是,C和E的更改消息(提交消息)与foo.txt的更改过程有关,应该包含在foo.txt的历史列表中。因此,我希望在git log -- foo.txt时收到它们的提交消息,就好像git add -- foo.txt已经运行并对修订版C和E生效。

1 个答案:

答案 0 :(得分:2)

运行git log -- foo.txt时,只会获得对该文件进行更改的提交。因此,你只是提交A-D而不是整棵树的原因是在B&中没有改变foo.txt。下进行。

Git在每次提交中存储系统的更改。在提交B& C,foo.txt没有变化。因此提交将不会对该文件进行任何修改。如果某些程序运行git add foo.txt并不重要,则文件没有任何更改,因此无需添加或提交任何内容。

通过添加文件名,您可以跟踪文件中的更改,以便在项目过程中查看更改方式。

如果您想获得A& A之间的所有提交D,您想要运行git log A..D。您可以添加--name-only选项以查看每次提交中更改的文件,或使用-p选项查看该提交中所做的所有更改。