为什么 git reset & push 在 remote 和 branchname 之间使用斜杠与空格?

0x4*_*672 5 git version-control github

在强制推送或强制更新之后,通常使用git reset来复制分支的所有远程更改。例如在 rebase 和 force push 之后

git push --force origin my_branch
Run Code Online (Sandbox Code Playgroud)

您的团队成员可以使用

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

获取更新的分支。现在的问题是,为什么你必须指定一个斜线/git reset,但不适合git push

e.d*_*vic 6

这更像是一个长评论,而不是一个正确的答案。

我想对此的通用答案是这样的:

“它是这样编程的”

更严肃地说,也许这与资源及其位置有关。我在这里所说的资源是指localremote

让我们看看您在原始帖子中提到的两个命令。

git push -f <remote> <branch>

那么push到底有什么作用呢?简单地说,它获取您在本地存储库中获得的任何内容并将其推送到上游到远程存储库。我们怎么做?从设计的角度来看,如果您考虑一下,在这种情况下传递两个参数是非常有意义的,一个remote是您将发送更改branch的地方,另一个是您将长期保留的本地系统。

接下来我们来看看

git reset --hard <remote>/<branch>

此指令基本上将您的工作目录重置为您指定的任何索引。另外,请注意这一切都是由您完成的local file system,这是您在OP 中提出的两个命令之间的区别。

  • 我把它留给你。:-) (2认同)