我从master分支创建了一个分支t1,并在分支t1中进行了多次提交。然后我在其他分支中进行了几次提交,合并了t1中的其他分支等。
现在我想要提交(不是那些来自主分支或任何其他分支的find only those commits which I had made in branch t1 )
发布于 2019-03-29 18:10:51
除非您使用的是pull-request流,否则没有任何可靠的机制来记录针对特定分支完成了哪些提交。
本地分支的名称可以是任意的。您可以创建本地分支foo,并将其新提交推送到分支bar。如果推送成功,我们只能确保提交是针对bar的。但它不能保证提交是在本地bar中进行的。如果您被允许在没有拉取请求的情况下直接将foo推送到bar,则系统甚至没有将这些提交推送到bar的永久记录。您可能会在合并提交的提交消息中找到一些线索,但是提交消息也是可以伪造的,更不用说对于提交消息可能没有严格的格式规则。当推送是快进时,合并提交本身甚至不存在。reflogs可能也有一些线索,但它们也不可靠,因为它们与本地分支绑定,并且不是永久的。
有了系统的pull-request流,托管服务,如Github,Gerrit和Gitlab,都有可靠的数据库来记录哪些提交被合并到特定的分支。它们提供apis或接口,允许用户从数据库中检索这些记录。
在您的情况下,您可以尝试:
git log t1 ^master --first-parent --no-merges但这一结果在理论上是不可靠的。
发布于 2019-03-29 13:56:56
如"Git: How to list commits on this branch but not from merged branches“中所述,您可以从(使用log --no-merges)开始:
git log --no-merges t1 master这将避免任何合并提交。
https://stackoverflow.com/questions/55410452
复制相似问题