我有master
和两个分支:branch-a
和branch-b
。首先包含一些代码更改,但仍保留在未更改的(旧)文件和文件夹结构上。其次没有对代码进行任何更改,但是有一个全新的文件和文件夹结构。
我做了什么,是:
我对branch-a
进行了一些更改并提交了它们。然后我把它们推到Gerrit,但是还没有审查改变,因为它还没有完成。
然后我做了一个严肃的结构改变。但是在切换到新的分支之前我错误地做了。承诺branch-a
对我来说似乎不对。我无法结账master
,因为git警告我可能的更改被覆盖并被要求提交或存储。
因此,我创建了一个新的branch-b
,对其进行了所有更改并将其推送到Gerrit。它已经过审核,但现在处于Submitted, Merge Pending
州,因为它取决于branch-a
,尚未审核。
我现在该怎么办?有没有办法(在这种情况下)将branch-a
合并到master
的更改保留在branch-b
引入的文件夹结构中?
我无法审核并提交branch-a
的更改,因为有关它的工作尚未完成。 (我认为)我无法将它合并到本地的master,因为它具有重要的树结构更改(旧文件夹结构),并且会覆盖所有内容,稍后会使用branch-b
覆盖。 (我认为)我无法将branch-a
(代码更改)合并到master
,然后将branch-b
(结构更改)合并到它上面,因为我最终会得到新文件和文件夹结构,但旧代码(branch-b
会覆盖branch-a
)。
我现在该怎么办?如何清理这个烂摊子?
答案 0 :(得分:1)
创建一个新的分支branch-c
通过git reset --hard origin/master
重置它来挑选本地branch-b
的提交将其推送进行审核,它将在没有依赖的情况下合并。然后放弃来自branch-b
的更改。