对于令人困惑的标题感到抱歉,但我无法想出更好的标题。
这是我的问题。我有2个分支,develop
和feature
。我按照这个过程:
feature
feature
合并到develop
develop
。现在,我想将我直接更改为develop
的更改合并回feature
。问题在于,当我这样做时,它会消除我之前在feature
中所做的所有更改。我假设发生这种情况是因为步骤3中的恢复比feature
中的任何代码更改更新,因此它适用于恢复更改。
我可以做我想做的事吗?我唯一能想到的是恢复develop
中的恢复,然后合并,然后还原恢复的恢复。这看起来很麻烦。
答案 0 :(得分:2)
我认为你可以分两步纠正这种情况:
1)执行import numpy as np
import pandas as pd
X = pd.DataFrame([[1,2], [3,4]])
Y = pd.DataFrame([[2,1], [3,3]])
def f(x, y): # this is a demo function that takes in two ints and
return str(x) + str(y) # concatenate them as str
vecF = np.vectorize(f) # vectorize the function with numpy.vectorize
X
# 0 1
#0 1 2
#1 3 4
Y
# 0 1
#0 2 1
#1 3 3
pd.DataFrame(vecF(X, Y)) # apply the function to two data frames
# 0 1
#0 12 21
#1 33 43
的交互式rebase并删除还原提交,即
develop
删除包含还原提交的行并完成rebase。此时,git rebase -i HEAD~6 # or however far back is the merge commit
现在具有原始合并提交,但没有还原。
2)对develop
执行rebase,指定develop
和develop
生成的提交的哈希值。默认情况下,rebase将完全忽略合并提交,从而将其删除:
feature
此处的git checkout feature
git rebase <SHA-1>
来自<SHA-1>
从[{1}}分支出来的提交。
在这两个步骤之后,您的feature
分支既没有合并提交也没有恢复提交,您应该安全地将其合并到develop
。
我强烈建议在这个问题中阅读@torek给出的答案:
Accidentally merged in wrong branch to mine. Is there a way to remove these unwanted files?
答案 1 :(得分:1)
通常,您创建一个功能分支,然后在该分支上工作以完成您的功能。然后将您的功能合并到开发分支,一段时间后开发状态就会生效。
在您的情况下,如果您对开发分支进行了更改,我希望您的功能分支上有一个rebase。然后,您将获得所有更改,并且您的功能分支将重写为您的开发分支的最后一次提交。
Atlassian有一个很好的教程,你可以使用功能分支。
https://www.atlassian.com/git/tutorials/comparing-workflows#feature-branch-workflow