Git如何更新本地存储库并保留我的更改

时间:2017-04-04 11:30:13

标签: git github

操作系统:ubuntu 16

我将git clone用于复制远程存储库到我的本地机器。 我在一些代码中做了一些更改(通过nano),可以说5-10个文件(我认为存储库有超过2000个文件)。

但是现在这个存储库得到了一些不错的更新。我希望获得所有这些更新,但我想保留我的自定义更改。我不能承诺这个存储库,因为我相信我的代码和修复程序是"坏"并不完美。

我应该使用哪个命令来获取所有更新并保留对文件的更改?

2 个答案:

答案 0 :(得分:3)

一种选择是存储您的工作目录(可能是阶段),拉入更改,然后应用存储:

git stash
git pull origin master   # or whatever the branch name is
git stash apply

这应该会让您处于大致处于新状态之前的状态。我说“粗略”,因为应用存储可能会导致合并冲突。如果您所做的更改与您上次同步后对回购所做的更改发生冲突,则此类冲突可能是不可避免的。

如果您担心会失去工作,那么我建议您也根据您的更改创建一个侧支。为此,您可以尝试:

git stash
git checkout -b safe_branch
git stash apply
git commit -m 'my work'

然后,您可以尝试在原始远程分支上合并或重新定位此分支。假设你想合并,你可以尝试:

git fetch origin
git checkout safe_branch
git merge master     # or whatever the remote branch is called

现在你有一个包含你的工作的真正提交的分支。在这个更安全的设置中失去你的工作真的很难。

答案 1 :(得分:2)

最简单的方法(如果您正在想要更新的分支上工作):

git stash
git pull
git stash pop

另一种选择是创建另一个分支来保留您的更改:

git checkout -b my-new-branch
git add .
git commit -m "my changes"
git pull --rebase origin master # this will get the updates and place your changes on top of it

在booth方法中,您可能会遇到冲突,要解决这些问题,您可以使用:

git mergetool