Git pull origin <branch>会覆盖master?</branch>

时间:2013-05-10 01:28:52

标签: git github git-branch remote-branch

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

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

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

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

git pull origin vs12up

它在桌面上将更改写入我的主分支, git log 显示在 vs12up 分支上进行的提交,但git分支仅显示 master < / strong>,这是当前的分支。

如何将更改还原到分支并拉出桌面上的 vs12up 分支以匹配笔记本电脑上的存储库?

1 个答案:

答案 0 :(得分:33)

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

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

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

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

    git checkout -b vsup12 origin/vsup12
    
  4. 请注意,当您随后在切换到git pull分支时执行vsup12时,您将从Github上的vsup12分支获取并合并最新更改到您的本地{ {1}}