是否有 git 命令在获取后显示新的上游提交?
Is there a git command to show new upstream commits after fetch?
是否有一些快捷方式来指定从远程跟踪分支获取新提交的时间间隔?而不是键入这个也是特定于分支的长命令:
git log branchName..origin/branchName
我正在寻找一些 git 间隔 hack,它将代表 branchName..origin/branchName 的间隔,类似(不起作用,相当于 git log ..origin/HEAD)
git log ..origin
这可能不是一个答案,而是一个很长的评论,其中包含您可以应用的解决方法,以避免一遍又一遍地重新输入相同的内容。
你可以给自己起个别名,见下面的例子
git config --global alias.branchlog \ `log branch..origin/branch`
alias.<name>
- 将 <name>
替换为您能记住的任何内容。您可以这样调用此函数:
git branchlog
我还没有测试过这个。
使用以下命令创建一个 bash 文件:git log ..origin/
。随意命名(我叫它foo.sh)。
确保它是可执行的:chmode +x foo.sh
.
运行 git 命令:git config --global alias.branchhistory '!./path/to/foo.sh'
现在您可以按如下方式尝试:git branchhistory master
.
如果您为您的分支机构配置了远程跟踪,这将执行您想要的操作:
git log ..@{u}
它将显示 remotes/branch
上的所有提交,这些提交尚未在您的本地 branch
上。如果您还想查看尚未推送的本地提交,请使用三个点:
git log ...@{u}
或者,如果您只想查看自上次获取以来尚未推送的本地提交,请将两个点放在 @{u}
:
之后
git log @{u}..
解释:
@{u}
是 shorthand `HEAD@{upstream}
master@{upstream}
表示 我的本地 'master' 分支的远程跟踪分支。 master@{upstream}
与 origin/master
相同,如果您的 master
分支正在跟踪名为 origin
的远程分支上名为 master
的远程分支。
- 如果您省略分支名称(例如
master
),则使用您当前的分支。
在这种情况下,upstream
可以缩写为 u
。因此,如果您当前的分支名为 master
. ,则 @{u}
与 master@{upstream}
相同
..
用于指定提交范围。
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
是否有一些快捷方式来指定从远程跟踪分支获取新提交的时间间隔?而不是键入这个也是特定于分支的长命令:
git log branchName..origin/branchName
我正在寻找一些 git 间隔 hack,它将代表 branchName..origin/branchName 的间隔,类似(不起作用,相当于 git log ..origin/HEAD)
git log ..origin
这可能不是一个答案,而是一个很长的评论,其中包含您可以应用的解决方法,以避免一遍又一遍地重新输入相同的内容。
你可以给自己起个别名,见下面的例子
git config --global alias.branchlog \ `log branch..origin/branch`
alias.<name>
- 将 <name>
替换为您能记住的任何内容。您可以这样调用此函数:
git branchlog
我还没有测试过这个。
使用以下命令创建一个 bash 文件:
git log ..origin/
。随意命名(我叫它foo.sh)。确保它是可执行的:
chmode +x foo.sh
.运行 git 命令:
git config --global alias.branchhistory '!./path/to/foo.sh'
现在您可以按如下方式尝试:git branchhistory master
.
如果您为您的分支机构配置了远程跟踪,这将执行您想要的操作:
git log ..@{u}
它将显示 remotes/branch
上的所有提交,这些提交尚未在您的本地 branch
上。如果您还想查看尚未推送的本地提交,请使用三个点:
git log ...@{u}
或者,如果您只想查看自上次获取以来尚未推送的本地提交,请将两个点放在 @{u}
:
git log @{u}..
解释:
@{u}
是 shorthand `HEAD@{upstream}master@{upstream}
表示 我的本地 'master' 分支的远程跟踪分支。master@{upstream}
与origin/master
相同,如果您的master
分支正在跟踪名为origin
的远程分支上名为master
的远程分支。- 如果您省略分支名称(例如
master
),则使用您当前的分支。
在这种情况下, upstream
可以缩写为u
。因此,如果您当前的分支名为master
. ,则
@{u}
与master@{upstream}
相同..
用于指定提交范围。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