Git 意外地从主题分支而不是主分支分支
我正在研究多个主题分支。一个主题分支有很多新特性,比master提前17次提交Git 意外地从主题分支而不是主分支分支,git,Git,我正在研究多个主题分支。一个主题分支有很多新特性,比master提前17次提交 现在,我决定研究另一个主题,并转移到一个新的主题。我做了一次提交,这一次提交就可以在GitHub上请求拉取了。然而,我注意到,我不小心将上一个主题分支分支而不是主分支,所以GitHub正在使用另一个主题分支的其他17个提交来预览我。如何将此新提交移动到没有上一个主题分支提交的主题分支?问题是,这并不是说这将是直接的,因为您可能已经更改了上一个文件已经更改的文件。如果更改因此而相互依赖,则必须解决冲突 但是,您可以执行
现在,我决定研究另一个主题,并转移到一个新的主题。我做了一次提交,这一次提交就可以在GitHub上请求拉取了。然而,我注意到,我不小心将上一个主题分支分支而不是主分支,所以GitHub正在使用另一个主题分支的其他17个提交来预览我。如何将此新提交移动到没有上一个主题分支提交的主题分支?问题是,这并不是说这将是直接的,因为您可能已经更改了上一个文件已经更改的文件。如果更改因此而相互依赖,则必须解决冲突 但是,您可以执行以下操作:
git签出主机
git checkout-b new\u topic\u branch
git cherry pick A..B
使用A
第一次提交“意外”分支的散列,以及B
该分支的最后一次提交)。在这种特殊情况下,您似乎只进行了一次提交,因此您可以使用该次提交的哈希值commit
或者,您可以将该分支合并到主分支。从概念上讲,处理这种情况最简单、最干净的方法可能是从最新的
主分支创建一个新的主题分支,然后选择您的单个提交:
首先在旧主题分支上查找最新提交的SHA-1哈希:
git checkout old_topic
git log
第一个条目是您打算在其自己的分支中进行的最新提交。记录此提交的SHA-1哈希(前8个字符应为
够了)
现在从master
创建一个新的主题分支,并选择所需的提交:
git checkout master
git pull origin master
git checkout -b new_topic
现在,cherry选择提交
git cherry-pick SHA-1
只需将新分支重新设置到master上:
git checkout new-topic
git rebase --onto master old-topic
对不起,是的,更改是完全独立的。