如何解决添加功能分支以分解母版
我最近开始从事一个废弃的项目,该项目是在我对git不太了解的情况下启动的,结果是在master分支中进行了很多提交,这些提交应该在发布/功能分支中创建。 因此,我考虑过重组Repo。
我尝试了moving commits to other branches,但是这给我留下了一个问题,我仍然需要以某种方式获得与母版合并的最终提交,我对此一无所知。
是否有一种方法可以将Repo重组为多个开发分支,并且仍在主版本中而又不会丢失提交?
解决方法
如果我理解正确,您想重写master分支的历史记录。
根据经验,重写任何推送到远程(特别是master分支)的分支的历史记录通常是一个坏主意。这可能会导致失去其他人的捐助,并破坏他们在当地的回购。 here的更多内容。
如果有多个人为您的存储库做贡献(或者您有很多提交),我建议您接受过去并开始使用发布/功能分支来构建您的存储库,并称之为一天。
如果您真的希望从一开始就拥有完整的提交历史记录,则需要重写整个历史记录,而又无需花费任何步骤,这就是我要做的事情:
-
将回购复制到文件系统上的其他位置以进行备份。
-
使用Git日志,我会找到适合同一功能分支的每组提交。我会注意最后的提交哈希值和相关的功能标题。
-
对于每个组,我都会创建一个功能分支
- 从母版
git checkout master
开始 - 创建并切换到新功能分支
get checkout -b <name of the feature>
- 删除自
git reset --hard <the hash of the last commit of the feature>
以来的所有提交
- 从母版
-
现在您已经有了许多不错的功能分支,您需要将它们合并到master中。但是首先,您需要擦除所有master提交的历史记录。您可以通过将分支重置为第一次将其提交到git log来实现:
git reset --hard $(git rev-list --max-parents=0 HEAD)
-
最后,按照首先添加提交的顺序,您可以为在步骤2中创建的每个分支执行
git merge <a feature branch>
。如果您没有忘记任何提交并得到尊重它们出现的顺序,您不应有任何冲突。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。