我从t1
分支创建了一个分支master
,并在分支t1
中进行了多次提交。
然后我在其他分支中进行了几次提交,在t1
等中合并了其他分支。
现在我要find only those commits which I had made in branch t1
(不是那些由于合并而来自master分支或任何其他分支的提交)
答案 0 :(得分:1)
除非您使用请求请求流程,否则没有任何可靠的机制来记录针对特定分支完成的提交。
本地分支的名称可以是任意的。您可以创建本地分支foo
,并将其新提交推送到分支bar
。如果推送成功,我们只能确保为bar
进行了提交。但这不能保证提交是在本地bar
中进行的。如果允许您在没有拉取请求的情况下直接将foo
推送到bar
,则系统甚至没有永久记录将这些提交推送到bar
。您可能会在合并提交的提交消息中找到一些线索,但是提交消息也可以伪造,更不用说您可能没有严格的提交消息格式规则。快速推送时,合并提交本身甚至不存在。重新引用也可能有一些线索,但是它们不可靠,因为它们与本地分支绑定并且不是永久的。
借助系统的请求请求流,Github,Gerrit和Gitlab等托管服务具有可靠的数据库,可记录将哪些提交合并到特定分支。它们提供了API或界面,使用户可以从数据库中检索这些记录。
您可以尝试以下方法:
git log t1 ^master --first-parent --no-merges
但是结果在理论上是不可靠的。
答案 1 :(得分:0)
如“ Git: How to list commits on this branch but not from merged branches”所述,您可以从开始(使用log --no-merges
)开始:
git log --no-merges t1 master
这将避免任何合并提交。