如何使用git log获取文件历史记录?

时间:2017-04-24 17:43:21

标签: git

我在SO上查看了其他答案,并确定以下命令有效,但不尊重查询中的标记名称

Activate

这给了我自创建文件以来git log -p myReleaseTag ProductCatalog.java 中的所有更改。

如何告知patch从我的代码git开始?

1 个答案:

答案 0 :(得分:1)

正如所写,您告诉log显示从myReleaseTag可以到达的所有更改(其中“可从”到“或多或少”,“在历史记录中”)。

你可以改为说

git log -p myReleaseTag..HEAD ProductCatalog.java

(或者,稍好一点的做法:

git log -p myReleaseTag..HEAD -- ProductCatalog.java

因为这有时会消除命令中的歧义)

这意味着“所有可以从HEAD获得的更改,但不能从myReleaseTag可以访问”。如果您想通过myReleaseTag包含提交市场的更改,那么您可以说

git log -p myReleaseTag^..HEAD -- ProductCatalog.java

(如果myReleaseTag没有标记合并,那只是100%直截了当。)

更一般地说,控制要显示的内容的论点是修订范围;有几种表示法来指定这样的范围。

https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection

更新 - 还有一个例子

另一种解释您所问的问题的方法是,如果您希望每次更改包含在发布中,而不管哪些分支可以达到更改。然后你可以使用

git log -p --all ^myReleaseTag -- ProductCatalog.java

并且只要不是在发布标记中存在就会显示更改,并且 可以从某个ref(标记,分支,...)访问。)