如何间接引用当前活跃分支所跟踪的远程Git分支?
如何引用当前分支跟踪的上游分支?
当然有啦!Git 专门提供了一个简洁的引用符号来指代当前活跃分支正在跟踪的上游分支——@{u}(也可以写全称 @{upstream}),完全匹配你的需求。
直接实现你的场景
如果你想丢弃本地所有更改和当前分支的本地提交,直接执行这条命令就搞定:
git reset --hard @{u}
它会把当前分支强制重置到其上游分支的最新状态,效果和手动输入上游分支名称完全一样,但不用费心去记或者敲分支名,特别省心。
额外的实用拓展用法
这个引用符号还有不少日常能用的场景:
- 查看本地分支比上游多提交了哪些内容:
git log @{u}.. - 快速对比本地分支和上游分支的差异:
git diff @{u} - 拉取上游分支更新并合并到本地(其实
git pull默认就是拉取上游,这个更多是演示用法):git pull @{u}
你提到的合并提交里~和^的细微差异没错,比如^可以指定合并提交的某个父提交,~则是回溯指定次数的第一个父提交,但这和上游分支引用是完全不同的场景哦。
内容的提问来源于stack exchange,提问作者Brondahl
相关产品推荐
相关产品推荐

