繁体   English   中英

Git拉起源 <branch> 覆盖大师?

[英]Git pull origin <branch> overwrites master?

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

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

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

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

git pull origin vs12up

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

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

如果你使用远程分支名称进行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 

请注意,当您随后在切换到vsup12分支时执行git pull时,您将从Github上的vsup12分支获取并合并最新更改到您的本地vsup12

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM