操作系统:ubuntu 16Git如何更新本地存储库并保留我的更改
我使用git clone来复制远程存储库到我的本地机器。 我做了一些改变(通过纳米)在一些代码可以说5-10个文件(存储库有2000多个文件,我认为)。
但现在这个存储库得到了一些不错的更新。我想获得所有这些更新,但我想保留我的自定义更改。我不能承诺这个存储库,因为我相信我的代码和修复是“坏”,并不完美。
我应该使用哪个命令来获取所有更新并将更改保留在文件中?
操作系统:ubuntu 16Git如何更新本地存储库并保留我的更改
我使用git clone来复制远程存储库到我的本地机器。 我做了一些改变(通过纳米)在一些代码可以说5-10个文件(存储库有2000多个文件,我认为)。
但现在这个存储库得到了一些不错的更新。我想获得所有这些更新,但我想保留我的自定义更改。我不能承诺这个存储库,因为我相信我的代码和修复是“坏”,并不完美。
我应该使用哪个命令来获取所有更新并将更改保留在文件中?
最简单的方式(如果你正在使用的分支上要更新):
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
在展台方法你可能会发生冲突,解决它们你可以使用:
git mergetool
一种选择是藏匿您的工作目录(以及可能的阶段),拉的更改,然后再应用已藏匿:
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
现在你有一个真正的提交包含你的工作分支。在这个更安全的设置中失去你的工作真的很难。
谢谢,我做了“git stash git pull git stash pop”看起来像它可以完美地在小的版本库上进行“小”更改。 – Amaroc