在拉取之前存储/提交,以免丢失本地文件

Kut*_*ren 5 git github git-pull

如果远程和本地存储库均发生更改,我在将本地存储库与 GitHub 上的远程存储库同步时遇到问题。因此,例如,如果我还没有开始研究某个功能,那么在开始之前我可以通过简单地运行来同步

git pull origin master
Run Code Online (Sandbox Code Playgroud)

这是一个简单的问题。然而,当我在本地开发一项功能时,假设我的同事已将新功能推送到远程,因此远程也发生了变化。我尝试在拉取之前完成提交和存储的同步。所以那些代码,

git add .
git commit -m "message"
git pull origin master
Run Code Online (Sandbox Code Playgroud)

或者

git stash save "message"
git pull origin master
git stash pop
Run Code Online (Sandbox Code Playgroud)

这两种方法最终都会覆盖我的本地更改,因此它不会将远程更改放在本地主分支的顶部,而是会覆盖我的本地文件,并且本地更改会消失。

我究竟做错了什么 ?我参考了许多有关 git 的文档,但我无法做到这一点。

谢谢,

Mar*_*oun 4

假设您正在开发my_branch,并在那里进行了一些更改。现在你的同事推送给了master,你需要更新你的:

git stash
git checkout master
git pull
Run Code Online (Sandbox Code Playgroud)

您的master更改已同步。

现在你想继续工作my_branch,所以你

git checkout my_branch
Run Code Online (Sandbox Code Playgroud)

现在你应该进行stash pop更改:

git stash pop
Run Code Online (Sandbox Code Playgroud)

如果没有检测到冲突,合并将自动进行。否则,系统会要求您解决这些问题。