2013-05-10 64 views
8

我在Github上的存储库,AAV1Git拉原点<branch>覆盖主?

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

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

在我的桌面我试图把远程分支:

git pull origin vs12up 

它写在桌面上的变化,以我的主分支,git的日志显示了vs12up分支上的提交,但git分支只显示主人,这是当前分支。

我怎么能恢复的更改分支和拉我的桌面,以配合我的笔记本电脑的存储库上vs12up分支?

回答

27

如果您使用远程分支名称执行git pull,它将获取远程分支,然后将其合并到当前的本地分支中。所以为了解决这个问题,您首先必须将本地分支重置为远程master,然后从相应的远程分支创建一个新的本地vs12up分支。

  1. 重置您的本地master相匹配的远程仓库的master(警告:确保你没有发出以下命令之前您想保留任何未提交的更改):

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

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

    git checkout -b vsup12 origin/vsup12 
    

注意,当您随后只是做一个git pull,同时切换到vsup12分支,你会取回并合并最新从Github上的vsup12分支变成您当地的vsup12

+0

谢谢。两个问题,-b参数有什么作用? – Jeff 2013-05-10 01:47:58

+0

并且我只是通过git checkout master切换回去? – Jeff 2013-05-10 01:48:29

+3

'-b'指定新分支的名称。 'git checkout -b foo'是创建名为'foo'的分支的简写(带有'git branch foo'),然后切换到它(使用'git checkout foo')。 – earl 2013-05-10 01:50:18