Git 将分支合并到父级并还原提交
Git merge branch to father with reverted commits
首先,我之前曾尝试寻找这个,但只显示了“如何恢复合并”post,所以我写这个希望能解决问题。
发生了什么:
- 我有一个分支(父亲)
- 一个工作朋友从父亲那里开了一个新分支开始在那里工作。
- 我开始编码并推送到父分支而不是新的一些提交(我的错误)
- 另一个人 revert 提交来解决问题,所以我可以将他们推送到正确的分支。
- 一个月后,我们完成了该分支的工作,现在我需要将这个分支合并回父亲。
问题:
- 当我进行合并时,正在应用父亲还原的提交,deleting/downgrading 我工作的一部分。
重要须知
- 父分支保持不变(只是在我们创建新分支后发生了还原)
我需要的
- 只是在不丢失我已经完成的部分工作的情况下将分支合并到父亲。我分支的所有更改都应该保留。
我试过的
- 将父亲合并到 child(没用,这是最初的问题,它带来了恢复和撤消工作)
- 对已还原的文件进行了一些更改(在 child 分支上),因此更新日期较新,因此它们现在应该保留(没用,只保留已删除的文件,但其余文件仍在撤消)
- 合并 child 到父亲(没用,还原的提交仍在应用)
什么可以解决问题但看起来不是一个好的选择
- Cherry pick,一个接一个,所有从 child 到父亲的提交(61 个提交,包括来自 child 的其他分支的一些合并)
- 复制可以还原的文件、合并、粘贴文件、提交和推送(我什至不认为这应该是一个选项,但仍然可以工作)
不知道还能做什么或如何正确解决这个问题。
我们需要尽快将应用程序部署到生产环境,并且需要解决此问题才能做到这一点。
A-B-C-D-E-F-Dr-Er-Fr (Branch A)
\
D-E-F-G-H-I.... (Branch B)
Dr、Er、Fr 是还原的提交
如您所见,它们已添加到新分支中,但与分支 A 具有相同的日期,因为在恢复后,我重置了分支 A,因此我已暂存更改。检查了分支 B,committed/pushed 在这里发生了变化。
我终于能够修复它,而且基本上很容易。
只需要还原还原的提交并推送更改。现在我可以正常合并我的分支了。
阅读 matt 在第一名所说的话给了一个很好的观点。那个问题是关于恢复已经推送的合并(不完全是我的情况)但是真的很有帮助,可以推荐给大家。
https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt
首先,我之前曾尝试寻找这个,但只显示了“如何恢复合并”post,所以我写这个希望能解决问题。
发生了什么:
- 我有一个分支(父亲)
- 一个工作朋友从父亲那里开了一个新分支开始在那里工作。
- 我开始编码并推送到父分支而不是新的一些提交(我的错误)
- 另一个人 revert 提交来解决问题,所以我可以将他们推送到正确的分支。
- 一个月后,我们完成了该分支的工作,现在我需要将这个分支合并回父亲。
问题:
- 当我进行合并时,正在应用父亲还原的提交,deleting/downgrading 我工作的一部分。
重要须知
- 父分支保持不变(只是在我们创建新分支后发生了还原)
我需要的
- 只是在不丢失我已经完成的部分工作的情况下将分支合并到父亲。我分支的所有更改都应该保留。
我试过的
- 将父亲合并到 child(没用,这是最初的问题,它带来了恢复和撤消工作)
- 对已还原的文件进行了一些更改(在 child 分支上),因此更新日期较新,因此它们现在应该保留(没用,只保留已删除的文件,但其余文件仍在撤消)
- 合并 child 到父亲(没用,还原的提交仍在应用)
什么可以解决问题但看起来不是一个好的选择
- Cherry pick,一个接一个,所有从 child 到父亲的提交(61 个提交,包括来自 child 的其他分支的一些合并)
- 复制可以还原的文件、合并、粘贴文件、提交和推送(我什至不认为这应该是一个选项,但仍然可以工作)
不知道还能做什么或如何正确解决这个问题。 我们需要尽快将应用程序部署到生产环境,并且需要解决此问题才能做到这一点。
A-B-C-D-E-F-Dr-Er-Fr (Branch A)
\
D-E-F-G-H-I.... (Branch B)
Dr、Er、Fr 是还原的提交
如您所见,它们已添加到新分支中,但与分支 A 具有相同的日期,因为在恢复后,我重置了分支 A,因此我已暂存更改。检查了分支 B,committed/pushed 在这里发生了变化。
我终于能够修复它,而且基本上很容易。
只需要还原还原的提交并推送更改。现在我可以正常合并我的分支了。
阅读 matt 在第一名所说的话给了一个很好的观点。那个问题是关于恢复已经推送的合并(不完全是我的情况)但是真的很有帮助,可以推荐给大家。
https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt