操作系统:ubuntu 16
我将git clone用于复制远程存储库到我的本地机器。 我在一些代码中做了一些更改(通过nano),可以说5-10个文件(我认为存储库有超过2000个文件)。
但是现在这个存储库得到了一些不错的更新。我希望获得所有这些更新,但我想保留我的自定义更改。我不能承诺这个存储库,因为我相信我的代码和修复程序是"坏"并不完美。
我应该使用哪个命令来获取所有更新并保留对文件的更改?
答案 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