git拉新的更新没有覆盖现有的修改?

时间:2014-03-08 22:08:24

标签: git

我有一个来自大师的分支,我有一些我不想覆盖的修改过的文件。主机已经发生了变化,我希望在不覆盖修改后的文件的情况下获取这些更新。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

最简单的方法是隐藏您的本地更改,合并主服务器中的更新,然后将您的存储更改应用于更新的分支:

$ git stash
$ git merge master
$ git stash pop

弹出时可能会出现冲突,但这是从另一个分支合并更改时必须承担的风险。如果发生这种情况,您只需要遵循正常的合并冲突解决策略。

答案 1 :(得分:2)

首先,提交待处理的更改,以确保它们是安全的。您提交的任何内容基本上都是安全的,除非您使用git reset重写分支,否则不会丢失。

这些是从另一个分支获取更新的一些常用策略:

  1. 您可以将其他分支与git merge合并。这不会“覆盖”您自己的更改,它将在您的更上方应用其他分支的更改。

  2. 您可以使用git rebase在另一个分支的顶部重新分支您的分支。这将基本上将您的分支回滚到您的分支的最后一个常见修订版,然后应用其他分支的更改,然后应用您的分支的更改。

  3. 无论您选择哪种方式,都可能会遇到需要解决的冲突。或者,您可以使用git reset --hard中止与git rebase --abort的转换中止合并。您可能应该在文档或Git Book中阅读有关这些操作的更多信息。

相关问题