Raf*_*nda 5 git version-control merge
我正在使用 git 并使用 master/develop/feature 分支。
主人只有自述文件。而且,不幸的是,我不小心将我正在工作的功能分支合并到主分支而不是开发分支。并且还删除了功能分支。
我对 git 知之甚少,我对该怎么做感到困惑。但我认为正确的做法是将功能分支(已删除)上的更改合并到 develop 并将合并恢复到 master 中。但是如果我已经删除了功能分支怎么办?
请注意,我在这里假设您还没有push编辑合并的结果。如果你有,这仍然可以工作,但需要“强制推送”,这反过来会影响使用 repo 的其他人(请参阅git rebase文档中的“从上游 rebase 恢复” ;因为这基本上是它会创建的情况)。但如果你没有,你不需要担心任何这些。所以:
首先是重新创建功能分支。我假设它只存在于本地。(如果它在合并之前被推送,你也许可以从远程恢复它;但无论哪种方式,下面的方法都可以。)所以
git checkout master
git checkout -b feature
git reset --hard HEAD^2
Run Code Online (Sandbox Code Playgroud)
现在功能分支被恢复到合并提交的“第二个父级”——它应该是合并前的位置。
接下来,您需要从master.
git checkout master
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
就是这样;您已准备好将该功能合并到开发分支中。