我的远程仓库(github)的主分支是完全错误的,我已经把好的代码推到了另一个名为kitos的分支上,这与主分支的代码完全不同。我想“删除”主分支的内容,把kitos的内容放在main里面,我不想要主分支上的任何代码,只想把kitos的内容放在main内容上。什么是最简单和正确的方法来改变这一点?
izj3ouym1#
我会按以下步骤处理。1.把“kitos”作为主要分支。1.删除名为“main”的分支1.将“kitos”重命名为“main”
6yoyoihd2#
有很多方法可以解决这种情况,这里是(IMO)两个最简单/最常见的:
可以说是最安全的选择。保留origin/main历史,使本地main分支成为您想要的分支,然后正常推送:
origin/main
main
$ git fetch $ git checkout main $ git pull $ git reset --soft origin/kitos $ git commit -m "Make match origin/kitos branch" $ git push
这将:1.确保你的本地参考资料是最新的1.在本地查看主要分支1.确保main与origin/main匹配1.使工作副本匹配origin/kitos而不更改历史记录1.提交的结果👆1.将此提交推送到origin/main这将维护origin/main中的现有历史,并通过“正常”提交实现所需的结束状态;这是一个合适的做法,例如,如果存储库只为您而您决定用另一个替代一个实验性解决方案。
忽略origin/main历史,使本地main分支成为您想要的分支,然后覆盖远程分支:
$ git fetch $ git checkout main $ git reset --hard origin/kitos $ git push --force-with-lease
这将:1.确保你的本地参考资料是最新的1.在本地查看主要分支1.重写历史记录,使本地主分支与origin/kitos匹配1.将origin/main的历史记录替换为origin/kitos的历史记录这将删除origin/main中现有的历史记录,用origin/kitos的历史记录替换它。使用此选项时要小心,如果有任何其他贡献者或克隆者,重写历史记录可能会有问题或令人困惑,如果有疑问,google 'is force push bad'或类似的查找引用like this one:)。
origin/kitos
2条答案
按热度按时间izj3ouym1#
我会按以下步骤处理。
1.把“kitos”作为主要分支。
1.删除名为“main”的分支
1.将“kitos”重命名为“main”
6yoyoihd2#
有很多方法可以解决这种情况,这里是(IMO)两个最简单/最常见的:
软复位推流
可以说是最安全的选择。
保留
origin/main
历史,使本地main
分支成为您想要的分支,然后正常推送:这将:
1.确保你的本地参考资料是最新的
1.在本地查看主要分支
1.确保
main
与origin/main
匹配1.使工作副本匹配origin/kitos而不更改历史记录
1.提交的结果👆
1.将此提交推送到
origin/main
这将维护
origin/main
中的现有历史,并通过“正常”提交实现所需的结束状态;这是一个合适的做法,例如,如果存储库只为您而您决定用另一个替代一个实验性解决方案。硬复位和强制推送
忽略
origin/main
历史,使本地main
分支成为您想要的分支,然后覆盖远程分支:这将:
1.确保你的本地参考资料是最新的
1.在本地查看主要分支
1.重写历史记录,使本地主分支与origin/kitos匹配
1.将
origin/main
的历史记录替换为origin/kitos
的历史记录这将删除
origin/main
中现有的历史记录,用origin/kitos
的历史记录替换它。使用此选项时要小心,如果有任何其他贡献者或克隆者,重写历史记录可能会有问题或令人困惑,如果有疑问,google 'is force push bad'或类似的查找引用like this one:)。