如果远程和本地存储库都有变化,我在使用GitHub上的远程存储库同步本地存储库时遇到问题。所以,例如,如果我还没有开始处理某项功能,那么在我开始之前,我可以通过简单地运行来同步
git pull origin master
这很简单。然而,当我在本地开发一个功能时,让我们说我的同事已经将新功能推到了遥控器上,这样遥控器也发生了变化。我尝试在拉动之前完成同步和提交同步。那些代码,
git add .
git commit -m "message"
git pull origin master
或
git stash save "message"
git pull origin master
git stash pop
这两种方法最终都覆盖了我的本地更改,因此它不会将远程更改放在我的本地主分支的顶部,而是覆盖我的本地文件和本地更改分散。
我做错了什么?我指的是很多关于git的文档,但我无法实现这一点。
谢谢,
答案 0 :(得分:2)
让我们假设您正在my_branch
上工作,并在那里进行了一些更改。现在你的同事推送到主人,你需要更新你的:
git stash
git checkout master
git pull
您的master
已与更改同步。
现在您要继续处理my_branch
,以便
git checkout my_branch
现在您应stash pop
进行更改:
git stash pop
如果未检测到冲突,则合并将自动生效。否则,您将被要求解决它们。
答案 1 :(得分:0)
将分支设置为与远程分支完全匹配可以分两步完成:
git fetch origin
git reset --hard origin/master
如果要在执行此操作之前保存当前分支的更改,可以执行以下操作:
git commit -a -m "Saving my work, for later use"
git branch my-saved-work
现在你的工作被保存在“my-saved-work”分支上,以防你决定要回来(或者想稍后查看它或者将它与你更新的分支区分开来)。