git - 如何在不指定后者的情况下将本地分支重置为远程跟踪分支?

标签 git jenkins

如果我有一个本地分支和一个远程分支不同步,很容易通过运行将本地分支重置为远程状态

$ git reset --hard origin/foo

但是,在某些情况下这很笨拙,特别是如果我正在运行的脚本需要将我当前 check out 的任何分支重置为远程状态(我现在在 Jenkins 脚本中遇到了这个问题)。

我需要的是一个“找出远程跟踪分支并将本地分支重置为任何状态”的命令。让我们假设总是有一个远程跟踪分支。

简单地应用“来源”是行不通的,因为我有多个 Remote 。我得到的最接近的是

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 .

关于git - 如何在不指定后者的情况下将本地分支重置为远程跟踪分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33312498/

相关文章:

jenkins - 有没有办法防止 Jenkins 字符串参数默认为参数名称(如果为空)?

java - Jenkins API 响应调优

angular - 没有 npm 更新 Angular 10 的 git 新分支

git - 如果从未提交过,您可以撤消 'git reset --hard HEAD' 吗?

git - 带有 "named commits"的 DVCS

jenkins - 创建结构化的 Jenkins 失败测试报告

ios - 使用 Jenkins 在 IOS 中生成 gcda 文件以查看来自 XCTests 的代码覆盖率

jenkins - 如何为多个分支运行多个管道 Jenkins

git - 如何将 svn repo 的主干镜像到 github?

java - 从 bitbucket 导入项目时 Gwt-servlet.jar 出现错误