我已经学会使用git进行R编程,我遇到了以下问题:
大多数时候我需要编写分支,因为相同的数据集可能会提供不同的分析,表格和图表,就像这一样,我将D分支为D1和E.
A---B---C---D---E
\
D1
当B中出现问题时,我会检查B,重新编码然后再提交,说现在是B1
A---B---C---D---E
\ \
B1 D1
为了让C,D,D1,E从B1开始,如下所示,我需要做很多rebase
A---B---B1---C---D---E
\
D1
git rebase B1 C
git rebase C D
git rebase D D1
git rebase D E
我认为这样做是非常愚蠢的,作为一个新的git,任何人都可以启发我,这样我就不需要一直点击rebase
吗?
答案 0 :(得分:1)
我不知道它是否会在您的情况下正常工作,但保存和重新应用解决方案合并冲突是通过 git rerere 完成的。
(请参阅rerere your boat或Fun with rerere)
这意味着:您仍然需要进行大量合并,但大多数合并将通过以rerere
记录的先前合并解决方案自动解析。
答案 1 :(得分:1)
重新定位会重写历史记录。您通常会在共享存储库中避免这种情况。当一个公共项目在像B1这样的“项目分支”中进行更改时,将其向前滚动的正常方法是将其合并到主干上,生成...---C---D---E---E+B1
,然后您只需将项目分支D1重新绑定到您的新的行李箱。如果D1更像是一个“发布分支”,那么你也会在那里合并B1以避免拾取不需要的E。
(作为旁注,即使您正在变基础,您只需要将每个分支重新定义到B1,而不是每个单独的修订)
答案 2 :(得分:1)
我没有看到重新定位的重点,只需在主分支上添加修复,然后将其挑选到D中。
A---B---C---D---E
\
D1
A---B---C---D---E---B1
\
D1
A---B---C---D---E---B1
\
D1--B1
它也将保留历史记录,正如Ben指出的那样,如果许多人在同一个回购单上工作,这一点很重要。