我有一个来自大师的分支,我有一些我不想覆盖的修改过的文件。主机已经发生了变化,我希望在不覆盖修改后的文件的情况下获取这些更新。
我怎样才能做到这一点?
答案 0 :(得分:2)
最简单的方法是隐藏您的本地更改,合并主服务器中的更新,然后将您的存储更改应用于更新的分支:
$ git stash
$ git merge master
$ git stash pop
弹出时可能会出现冲突,但这是从另一个分支合并更改时必须承担的风险。如果发生这种情况,您只需要遵循正常的合并冲突解决策略。
答案 1 :(得分:2)
首先,提交待处理的更改,以确保它们是安全的。您提交的任何内容基本上都是安全的,除非您使用git reset
重写分支,否则不会丢失。
这些是从另一个分支获取更新的一些常用策略:
您可以将其他分支与git merge
合并。这不会“覆盖”您自己的更改,它将在您的更上方应用其他分支的更改。
您可以使用git rebase
在另一个分支的顶部重新分支您的分支。这将基本上将您的分支回滚到您的分支的最后一个常见修订版,然后应用其他分支的更改,然后应用您的分支的更改。
无论您选择哪种方式,都可能会遇到需要解决的冲突。或者,您可以使用git reset --hard
中止与git rebase --abort
的转换中止合并。您可能应该在文档或Git Book中阅读有关这些操作的更多信息。