如果我有一个本地分支和一个不同步的远程分支,可以通过运行将本地分支重置为远程状态
$ git reset --hard origin/foo
Run Code Online (Sandbox Code Playgroud)
但是,有些情况下这是不实用的,特别是如果我运行的脚本需要重置我当前检出的任何分支到远程状态(我现在在Jenkins脚本中有这个问题).
我需要的是一个命令,它"找出远程跟踪分支并将本地分支重置为任何东西".我们假设总有一个远程跟踪分支.
简单地应用'origin'是行不通的,因为我有多个遥控器.我得到的最接近的是
git reset --hard `git branch -vv | grep "^*" | grep -P -o "(?<=\[).*(?=\])"`
Run Code Online (Sandbox Code Playgroud)
......但这看起来很愚蠢,鉴于git的百万命令,必须有一个更简单的方法.
Git提供@{u}了上游的简写,因此我们可以使用:
$ git reset --hard @{u}
Run Code Online (Sandbox Code Playgroud)
要么
$ git reset --hard @{upstream}
Run Code Online (Sandbox Code Playgroud)
对于这种问题.另见http://git-scm.com/book/en/v2/Git-Branching-Remote-Branches.
| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |