我怎么git reset - 硬起源/我检查过的任何分支?

mac*_*ost 4 git

我正在尝试编写一个git部署脚本,但脚本必须更新多个服务器,并且它们并非都在同一个Git分支上.理想情况下,脚本应该只需要一个命令,效果为"git reset --hard origin/whateverBranchThisServerIsOn".

现在,我知道我能做到:

git reset --hard origin/foo
Run Code Online (Sandbox Code Playgroud)

将我的git环境重置为远程foo分支.但是,我想要做的是重置为远程分支,但不是"foo"具体,只是"机器当前已检出的任何分支的远程(即,当你做什么分支时git branch").

我试过了:

git reset --hard origin
Run Code Online (Sandbox Code Playgroud)

和:

git reset --hard origin/HEAD
Run Code Online (Sandbox Code Playgroud)

和:

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

但是他们要么结账其他分支,要么(在最后一种情况下)没有获得远程提交.当然有一些方法可以说git reset --hard origin/CURRENT_BRANCH

And*_*oss 6

"我已经检查过的分支"的想法有点格格不入.这样的分支之间没有1:1的关系.您的分支可能根本没有"原产地".但它可以有一个远程跟踪分支,可能(或可能不)与您所在的分支具有相同的名称.阅读man gitrevisions,它看起来指定HEAD@{upstream}应该工作做你想要的.但我没有测试过它.