自从当前分支分支以来,在分支上获取提交日志的最佳方法是什么?我目前的解决方案是:
git log $(git merge-base HEAD branch)..branch
Run Code Online (Sandbox Code Playgroud)
git-diff的文档表明它git diff A...B等同于git diff $(git-merge-base A B) B.另一方面,git-rev-parse的文档表明它r1...r2被定义为r1 r2 --not $(git merge-base --all r1 r2).
为什么这些不同?请注意,这git diff HEAD...branch给了我想要的差异,但相应的git log命令给了我更多的东西.
在图片中,假设:
x---y---z---branch
/
---a---b---c---d---e---HEAD
我想得到一个包含提交x,y,z的日志.
git diff HEAD...branch 给出了这些提交git log HEAD...branch给出x,y,z,c,d,e.我们如何才能获得两个git存储库之间的区别?
场景:我们有一个repo_a和repo_b.后者是作为repo_a的副本创建的.之后两个存储库都有并行开发.有没有办法列出这两个存储库当前版本的差异?
git log origin/master
git log origin/master..
Run Code Online (Sandbox Code Playgroud)
与上面的确切区别是什么?我试图理解..符号的确切含义.我认为这是一个范围,但在这种情况下,它做了一些不同的事情.
我有两个不同的CVS存储库导出到git.他们在某些方面有所不同,我正在调查原因.该开发线可以追溯到几年,并且有数万次提交.
在开发行的开头,每个提交的SHA1 ID都是相同的,告诉我git-cvsimport在读取cvsps和import的结果时非常一致.
但是在第一次提交和昨天之间的某个时间,SHA1 ID开始出现分歧.我想通过比较每个存储库中的提交ID列表并查看缺少的内容来找出它的位置.这样做有什么好的工具或技术吗?
git diff master..lab
Run Code Online (Sandbox Code Playgroud)
它会在两个分支的尖端之间产生差异.
git diff master...lab # notice triple dot
Run Code Online (Sandbox Code Playgroud)
它将从两个分支的共同祖先开始产生差异.
我无法想到双点的结果与三点的结果不同的任何情况.