是否有一些快捷方式可以指定从远程跟踪分支获取的新提交的时间间隔?而不是键入也是分支特定的长命令:
git log branchName..origin/branchName
我正在寻找一些git interval hack,它将代表branchName..origin / branchName的间隔,类似于(不工作,相当于git log ..origin / HEAD)
git log ..origin
答案 0 :(得分:7)
如果您为分支机构配置了远程跟踪,则可以执行您想要的操作:
git log ..@{u}
它会显示remotes/branch
上尚未在您的本地branch
上的所有提交。如果您还想查看尚未推送的本地提交,请使用三个点:
git log ...@{u}
或者,如果您只想查看自上次提取时未被推送的本地提交,请在@{u}
后面加上两个点:
git log @{u}..
说明:
@{u}
是`HEAD @ {upstream}的缩写
master@{upstream}
表示我的本地“主”分支的远程跟踪分支。 master@{upstream}
与origin/master
相同,如果您的master
分支正在跟踪名为master
的遥控器上名为origin
的远程分支。master
),则会使用当前分支。upstream
可以缩写为u
。因此,如果您当前的分支名为@{u}
,则master@{upstream}
与master
相同。..
用于指定一系列提交。
A..B
与^A B
相同,这意味着显示B中的所有提交但不包括A中的提交。它也可以写成B --not A
。 A..
或..B
,则省略的引用将被假定为HEAD
。git rev-parse --symbolic-full-name @{u}
git branch --set-upstream-to=origin/master
您可以在Git man pages:
中找到有关修订规范的所有详细信息git help revisions
或
man gitrevisions
答案 1 :(得分:0)
这可能不是一个答案,而是一个长期的评论,你可以应用一种解决方法,以避免一遍又一遍地重新输入相同的东西。
您可以自己写一个别名,请参阅下面的示例
git config --global alias.branchlog \ `log branch..origin/branch`
alias.<name>
- 只要您记得,就用您喜欢的任何内容替换<name>
。您可以像这样调用此函数:
git branchlog
答案 2 :(得分:-1)
我没有测试过这个。
使用以下命令创建bash文件:git log $1..origin/$1
。把它命名为你喜欢的(我称之为foo.sh)。
确保它是可执行的:chmode +x foo.sh
。
运行git命令:git config --global alias.branchhistory '!./path/to/foo.sh'
现在您已准备好按以下方式尝试:git branchhistory master
。