git - Git将分支合并到父亲并恢复提交
问题描述
首先,我之前尝试过寻找这个,但只显示了“如何恢复合并”的帖子,所以我写这个希望能解决这个问题。
发生了什么:
- 我有一个分支(父亲)
- 一个工作的朋友从父亲那里开了一个新的分支,开始在那里工作。
- 我开始编码并推送到父亲分支而不是新的一些提交(我的错)
- 另一个人恢复提交以解决问题,因此我可以将它们推送到正确的分支。
- 一个月后,我们完成了该分支的工作,现在我需要将该分支合并回父亲。
问题:
- 当我进行合并时,正在应用父亲恢复的提交,删除/降级我的部分工作。
重要的是要知道
- 父分支保持不变(只是在我们创建新分支后发生了还原)
我需要的
- 只是将分支合并给父亲,而不会失去我已经完成的部分工作。我的分支的所有更改都应该保留。
我试过什么
- 将父亲合并到孩子(没有工作,这是最初的问题,它带来了还原和撤消工作)
- 对已恢复的文件进行了一些更改(在子分支上),因此更新日期较新,因此它们现在应该保留(没有工作,只保留已删除的文件,但其余的仍在撤消中)
- 将孩子合并为父亲(没有工作,恢复的提交仍在申请中)
什么可以解决问题但看起来不是一个好的选择
- 樱桃采摘,一个接一个,从孩子到父亲的所有提交(61 次提交,包括来自孩子的其他分支的一些合并)
- 复制可以还原的文件,合并,粘贴文件,提交和推送(我什至不认为这应该是一个选项,但仍然可以工作)
不知道还能做什么或如何正确解决此问题。我们需要尽快将应用程序部署到生产环境,并且需要解决这个问题才能做到这一点。
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,并在此处提交/推送更改。
解决方案
我终于能够修复它,而且很容易。
只需要还原已还原的提交并推送更改。现在我可以正常合并我的分支了。
首先阅读马特所说的内容给出了一个很好的观点。那个问题是关于恢复已经推送的合并(不完全是我的情况),但这是一个非常有用的阅读,可以推荐给每个人。
https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt
推荐阅读
- airflow - 来自 XCom 值的 Airflow BashOperator 参数
- python - 以交互方式突出显示 igraph 中的节点和边
- node.js - stream-chat-js 包的 Angular 编译错误。没有导出成员“客户”
- react-native - 如何在 React Native 的 TextInput 中禁用退格键?
- javascript - 无法在 Fullcalendar Django 中添加事件
- firebase-realtime-database - recyclerView GridLayoutManager 中的图像显示不正确
- python - 需要拆分字典
- reactjs - 关于 useReducer + Context 的具体问题
- r - 刻度填充手册 - 映射到不同绘图上不同颜色的色标值
- python - 在 C++ 中存储数据,如 python 中的字典