如何更改远程跟踪分支指向的提交?

时间:2020-07-17 09:21:47

标签: git github

我有一个名为appsec/master的远程跟踪分支,我希望将其设置为HEAD。我通常使用git branch -f <branch> <commit>来设置本地分支,但是执行branch branch -f appsec/master HEAD会导致创建新的本地分支appsec/master

如何在执行git push -f -u <upstream> <branch>之前显式设置远程跟踪分支?

(master %<>)$ git log --graph --oneline --decorate --all -n 25
* 211e9d7 (HEAD -> master) Working version of scanner
| * c5a9ec4 (appsec/master) Added regex.json
|/
...

NB :我知道这个问题有点笼统,因为我永远不应该手动执行git push -f或修改远程跟踪分支,但是在这种情况下,我将自己的存储库与没有合作伙伴。

2 个答案:

答案 0 :(得分:1)

您无法“设置”远程跟踪分支,它们是设计使您上次检查时从远程获取的图像。

但是,您可以在本地分支上设置任何引用,然后将其强制推送到远程。然后,简单地从中提取内容也会更新您的远程跟踪分支。

答案 1 :(得分:1)

您的本地计算机上的远程分支也会被表示,但是默认情况下它们是隐藏的。您可以使用git branch --all查看其中的列表。 因此,即使您没有Internet连接,也可以合并远程分支(本地缓存)。 因此,您可以简单地运行git push --force appsec master。 然后运行git fetch以将所有更改从服务器接收到本地远程分支。 参见git remote branches