- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近重新分支 - 也就是说,从 master
中创建了一个新分支并 merge 到一个功能分支中,例如TASK-123
,新分支 TASK-123-b
替换了 merge 到其中的功能分支。每当功能分支与 master
发生冲突时,这是我们 git 工作流程中的常规操作。
当我将 TASK-123
merge 到 TASK-123-b
时,当然会发生 merge 冲突,我已解决并提交。新分支 TASK-123-b
和 TASK-123
中的提交 merge ,只有一个父级:master
我如何修改提交,使 master
和 TASK-123
都是其父项?我假设将涉及 git rebase
,但除此之外我不知道如何将父分支/提交添加到提交。
我的提交历史目前看起来是这样的:
master -*---*-----* ...
\ \
TASK-123 *---*-* \
\
TASK-123-b * ...
我希望我的提交历史看起来像这样:
master -*---*-----* ...
\ \
TASK-123 *---*-* \
\ \
TASK-123-b \---* ...
注意:我还没有将 TASK-123-b
推送到远程,因此对它进行 rebase 提交应该不会给我的同事带来任何问题。
最佳答案
您需要重新将 TASK-123 merge 到 TASK-123-b 中,因为它看起来不像您希望的那样工作。为此,请在 merge 之前在 TASK-123-b 中找到提交哈希,并在那里重置您的分支指针:
$ git checkout -B TASK-123-b abc123
然后重复 merge :
$ git merge TASK-123
如果您重置分支指针,旧的 merge 提交将被孤立并且不会显示在日志中,除非您特别将其作为参数提及。如果您想取回它,散列将记录在 reflog 中,或者您可以将散列复制到某个地方,并在您决定需要时使用 checkout -B
命令将其放回原处。
如果不想再次解决冲突,那么不要重新设置分支指针,重新 merge 即可:
$ git checkout TASK-123-b
$ git merge TASK-123
并删除旧分支:
$ git branch -d TASK-123
关于git - 如何将父级添加到 git 中的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28200464/
我是一名优秀的程序员,十分优秀!