自从当前分支分支以来,在分支上获取提交日志的最佳方法是什么?我目前的解决方案是:
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 log origin/master
git log origin/master..
Run Code Online (Sandbox Code Playgroud)
与上面的确切区别是什么?我试图理解..
符号的确切含义.我认为这是一个范围,但在这种情况下,它做了一些不同的事情.