[英]How can I reset a local branch to the remote tracking branch without specifying the latter?
如果我有一個本地分支和一個不同步的遠程分支,可以通過運行將本地分支重置為遠程狀態
$ git reset --hard origin/foo
但是,有些情況下這是不實用的,特別是如果我運行的腳本需要重置我當前檢出的任何分支到遠程狀態(我現在在Jenkins腳本中有這個問題)。
我需要的是一個命令,它“找出遠程跟蹤分支並將本地分支重置為任何東西”。 我們假設總有一個遠程跟蹤分支。
簡單地應用'origin'是行不通的,因為我有多個遙控器。 我得到的最接近的是
git reset --hard `git branch -vv | grep "^*" | grep -P -o "(?<=\[).*(?=\])"`
......但這看起來很愚蠢,鑒於git的百萬命令,必須有一個更簡單的方法。
Git提供@{u}
作為上游的簡寫,因此我們可以使用:
$ git reset --hard @{u}
要么
$ git reset --hard @{upstream}
對於這種問題。 另見http://git-scm.com/book/en/v2/Git-Branching-Remote-Branches 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.