git:重置为远程分支

时间:2015-11-24 14:58:11

标签: git reset git-checkout

克隆存储库后,我无法将该存储库的状态重置为远程分支。

$ git clone <repo>
$ git reset --hard <upstream branch>
fatal: ambiguous argument '<upstream branch>': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]

可行的方法是使用origin

作为前缀
$ git reset --hard origin/<upstream branch>

或在

之前结帐
$ git checkout <upstream branch>
$ git reset --hard <upstream branch>

问题:

  1. checkout命令为本地git存储库提供了哪些额外信息或状态更改,以便最终可以重置其状态?
  2. 是否有命令(如checkout)我可以在不是分支特定的重置命令之前运行?

2 个答案:

答案 0 :(得分:3)

Git无法在新鲜的本地仓库中找到对名为upstream_branch的分支的引用,因为它不存在。但是origin/upstream_branch的引用确实存在。运行git branch --all,您将看到存储库中的本地和远程分支的完整列表。

在第二个工作方案中,当您运行git checkout upstream_branch时,您创建了一个名为upstream_branch的本地分支,用于跟踪远程分支origin/upstream_branch。这就是后续git reset命令的作用原因。

答案 1 :(得分:0)

将存储库的状态重置为远程分支是什么意思?

如果您希望本地分支等于远程分支,请使用** git checkout *:

git checkout -b local_branch_name origin/remote_branch_name

如果您有一个脏工作区,并且想要删除任何添加/修改的文件,您可以输入:

git clean -f
git checkout -f -b local_branch_name origin/remote_branch_name