我在SO上查看了其他答案,并确定以下命令有效,但不尊重查询中的标记名称
Activate
这给了我自创建文件以来git log -p myReleaseTag ProductCatalog.java
中的所有更改。
如何告知patch
从我的代码git
开始?
答案 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(标记,分支,...)访问。)