git日志只返回对主分支进行的提交?
我做了一些搜索,发现:
git log myBranchName
作为可能的解决方案。 但是当我的分支是主分支时会发生什么? 当我运行时:
git log master
它似乎将所有提交给任何分支的内容都返回。 根据我读过的内容,它列出了与主分支相关的所有提交。 了解这一点,我如何才能调用主分支的提交历史记录?
我认为这是你想要的
git log --first-parent master
引用手册
在查看合并提交后,只跟踪第一个父提交。 当查看特定主题分支的演变时,此选项可以提供更好的概述,因为合并到主题分支往往只是适应不断更新的上游时间,并且此选项允许您忽略单独提交到你的历史通过这样的合并。
由于Git的分支模型,提交不属于单个或多个分支。 分支是指向整个提交图中单个提交对象的指针。 所以当你说X中的一个提交是“在分支X上”的时候,你通常意味着它在分支X指向的提交开始时是可访问的。
对于git log
,默认行为等于git log HEAD
,其中HEAD引用当前分支当前指向的提交。 所以,如果你在主分支上,它就等于git log master
,显示在最近的提交开始时可以访问的所有提交。
不幸的是,你所指的作为对某个分支的提交在Git中没有明确定义。 如果我在master上进行提交,然后创建一个指向相同提交的新分支(例如,使用git branch newbranch
),那么除了名称外,该分支与主分支完全相同。 因此,“分支大师制造的每一个财产”现在也意味着“在分支新生产”。 因此你不能在Git中拥有这个属性。
即使parkydr的解决方案,它显示所有仅在合并的一侧进行的提交,也不是一个失败的解决方案。 理想情况下,它会隐藏所有那些在独立的非主分支上进行的提交,然后合并回主。 因此,您只会直接向主线提交提交或在其他提交中合并提交合并的提交。 但是有两件事会阻止它的运行:
git merge somebranch
主分支上的分支将快进提交,导致主分支指向与提交相同的提交somebranch。 因此,您“失去”那些提交最初在独立分支上创建的信息。 你可以强制Git始终创建合并提交,使用git merge --no-ff
但是这对你以后不会有所帮助。 所以,底线是你无法安全地获得这样的历史。 你最好习惯Git灵活的分支模型的工作原理。
链接地址: http://www.djcxy.com/p/8671.html上一篇: git log to return only the commits made to the master branch?