我们正在与许多团队成员一起开展一个项目,现在正在努力改进我们的工作方式。目前,所有工作都是在几年前从 master
分支出来的 integration
分支中完成的。由于某种原因,在 master 分支中完成了大约 600 个提交,但没有 merge 到集成中,还有在集成中完成的大约 1200 个提交没有 merge 到 master 分支中。所有版本都完全脱离集成分支,主分支一年一次都没有被触及。我们希望使用 master
分支作为我们的稳定分支,但为了做到这一点,我们需要 merge 来自 integration
的所有更改,并且不保留任何分歧的更改在主控中完成。
有没有一种头痛的方法可以从主分支中删除“无效”提交?或者我们应该简单地创建一个新的存储库或当前集成位置的另一个稳定分支?
更新不幸的是,非快进和远程分支删除被拒绝,我仍在等待存储库托管负责人的回复。我认为改变不会那么容易,遗憾的是它是一家大公司。
最佳答案
如果您无法进行远程删除,那么最简单的方法是:
git checkout integration
cp -a . ../integration-source
rm -rf ../integration-source/.git
git checkout master
mv .git ../integration-source
cd ../integration-source
git add --all
git commit -m"massive commit to make master identical with integration"
git push
cd ..
rmdir projectdirname
mv integration-source projectdirname
哒哒!
如果您可以进行远程删除:
git push --force origin integration:master
关于git - 如何从 git 中已推送的分支中删除所有提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725209/