作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
与很多团队成员一起从事一个项目,我们现在正在努力完善我们的工作方式。目前所有工作都在 integration
分支中完成,该分支是几年前从 master
分支出来的。出于某种原因,大约有 600 次提交在 master 分支中完成但未 merge 到集成中,以及大约 1200 次提交在集成中完成但未 merge 到 master 分支中。所有版本都完全脱离集成分支,一年一次都没有触及主分支。我们想使用 master
分支作为我们的稳定分支,但为了这样做,我们需要 merge integration
中的所有更改并且不保留任何不同的更改在 master 中完成。
有没有令人头疼的方法从 master 分支中删除“无效”提交?或者我们应该简单地创建一个新的存储库或另一个稳定的分支离开当前的集成位置?
更新 不幸的是,非快进和远程分支删除被拒绝了,我还在等待存储库托管负责人的回复。我假设它不会那么容易改变,遗憾的是这是一家大公司。
最佳答案
如果不能远程删除,那么最简单的方法是:
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/
我是一名优秀的程序员,十分优秀!