20

我在 Github 上有一个存储库,aav1

在我的笔记本电脑上,我有两个分支,一个叫master,一个叫vs12up master 分支是当软件是 Visual Studio 2008 时,vs12up 转换为 Visual Studio 2012。

在我的笔记本电脑上一切似乎都很好,我将新分支推送到 github,看起来是正确的。

在我的桌面上,我尝试拉出远程分支:

git pull origin vs12up

它在桌面上将更改写入我的 master 分支,git log显示在vs12up分支上所做的提交,但 git branch 仅显示master,即当前分支。

如何恢复对master分支的更改并在我的桌面上拉取vs12up分支以匹配我笔记本电脑上的存储库?

4

1 回答 1

47

如果您git pull使用远程分支名称执行操作,它将获取远程分支,然后将其合并到您当前的本地分支中。因此,要撤消该操作,您首先必须将本地分支重置为远程master,然后从相应的远程分支创建一个新的本地vs12up分支。

  1. 重置您的本地master以匹配远程存储库master(警告:在发出以下命令之前,请确保您没有任何要保留的未提交更改):

    git reset --hard origin/master
    
  2. 将所有远程分支获取到本地存储库:

    git fetch origin
    
  3. vsup12从远程分支创建一个新的本地分支vsup12,并切换到这个新的本地分支:

    git checkout -b vsup12 origin/vsup12
    

请注意,当您随后只是git pull切换到vsup12分支时,您将从vsup12Github 上的分支获取最新更改并将其合并到本地vsup12

于 2013-05-10T01:43:00.413 回答