git,merge会覆盖我的更改

时间:2014-08-28 07:38:52

标签: git merge rebase

不知道,如何用简短的标题来描述......这是我的问题。

我们有两个分支功能-100,功能-150和开发分支。

我正在使用150,需要来自branch-100的功能。 Branch-100,有些弱点,从未被合并开发。 一个人,通过樱桃挑选从100改变发展。 所以这个想法,只是"更新"我的150与当前的发展,以获得这个珍贵的功能。

我试过我的分支

  1. 从开发合并
  2. 将我的分支改为开发
  3. 但是所有这些操作都会覆盖我在分支上的更改。 还有一个信息,我对150的更改已经在远程/ 150上拉。

    任何想法,如何处理?

2 个答案:

答案 0 :(得分:3)

  

还有一个信息,我对150的更改已经在远程/ 150上拉。

这意味着在开发之上重新定位feature-150不是一个好主意,因为它会重写该分支的历史。

合并应该是正确的选择:

git checkout feature-150
git merge develop

这不应该覆盖您的更改。如果是,请尝试git merge中的合并策略特定选项ours:如果发生冲突,将选择您的更改。

git merge -X ours develop

如果仍然失败,则OP codesnippet点(in the comments)为解决方法:

  

我现在合并了,我的更改被覆盖了,之后我会使用cherry-pick为我的树提交“强制覆盖”我的更改
  也许有其他/更好的方法来实现这一点,但这是我的解决方案。

答案 1 :(得分:0)

你是什么意思"覆盖我的变化"?

在做任何其他事情之前提交您的更改!这样它们就会被存储为提交,git就会知道它们。

之后合并和rebase都应该没问题。