簡體   English   中英

如何在不指定后者的情況下將本地分支重置為遠程跟蹤分支?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM