已设置--set-upstream后,如何简洁推送dev分支至指定提交C?
简化推送指定提交到跟踪分支的方法
先明确下你的场景:本地dev分支的HEAD在commit A,远程origin/dev停在commit F,而且dev已经通过--set-upstream关联了origin/dev对吧?
其实Git本身并没有提供完全省略远程仓库和分支名的原生命令来直接推送指定提交到跟踪分支,但我们有几个可以简化操作的方式:
利用上游分支简写:因为
dev已经跟踪了origin/dev,可以用@{u}来指代上游分支,这样命令可以简化成:git push origin C:@{u}相比
git push origin C:dev,少写了分支名,稍微简洁一些。自定义Git别名(最推荐):如果你经常需要做这类操作,可以给Git设置一个全局别名,一次性配置后永久使用:
git config --global alias.push-to '!git push origin $1:@{u}'配置完成后,下次只需要输入:
git push-to C就可以把指定的commit C推送到
dev的上游分支,完全不用写远程仓库和分支名,非常方便。
另外补充一下:如果你愿意先调整本地分支指针,也可以先执行git reset --hard C把本地dev分支指向commit C,然后直接git push -f。但这个方法会覆盖本地dev分支上A、B这些后续提交,如果你还要保留这些提交的话,就不建议用这个方式。
内容的提问来源于stack exchange,提问作者adentinger
相关产品推荐
相关产品推荐

