Git:如何在不改变本地已修改文件的情况下从主分支更新本地分支

4

我的公司最近从SVN转换到Git,因此没有真正的内部知识库:我们正在努力理解Git的术语和过程。

使用情况是当我想要用主分支的最新更改更新我的本地分支时,但我希望我在本地更改的任何文件"胜过"来自主分支的更改。

基本上,如何在不丢失我的工作的情况下更新我的本地分支以获得最新更改?


你的本地更改已经提交了吗? - Tim
就本地知识库而言,您可能会发现Atlassian的这个页面很有用:https://www.atlassian.com/git/tutorials/syncing/git-fetch,它从SVN的角度讲解了git。 - neontapir
@TimCastelijns 我已经将本地更改提交到我的本地分支,我想确保项目的其余部分是最新的。 - JerkyTreats
2个回答

2
git checkout local_branch

git add
git commit
保存您的本地更改,然后在该分支中继续操作。

git fetch master        # get the latest master into origin
git merge -xours origin/master # and merge it in

你可能会发现http://git-scm.com/book/zh/v2/Git-Tools-Advanced-Merging很有用。


这样做可以实现,但会移除所有本地更改。你可能想使用 git stash 命令来保留这些更改。 - neontapir
另外,如果您计划按顺序执行 git fetchgit merge,您可能需要考虑使用 git pull - neontapir
这个答案帮了我 - 我在使用fetch时没有进行合并。还知道git pull == git fetch; git merge是很有帮助的。而且我不知道我们/他们/我们的修改器。那可以派上用场。再次感谢。 - JerkyTreats

2

如果您在本地有未提交的更改,Git将不允许您从主分支(master)拉取任何内容。因此,请运行git stash,然后再运行git pull以安全地更新代码。然后使用git stash pop将您的更改还原回来。如果Git无法自动处理冲突,它会发出警告提示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接