分布式版本控制系统在日常开发中使用越来越频繁,谁没经历过手一抖,不小心把错误的内容git push到远程仓库?
前几天我就遇到了,当时对git也不熟,于是各种try……终于,现在搞明白了
环境:
-
远程仓库fork的开发项目
-
分支只有master
操作:
-
git pull origin master (埋下祸根,把别人的commit也pull下来了)
-
git push self master:master
-
repo中merge 请求,包含别人的commit !
解决办法:
-
新建临时分支git checkout -b newMaster
-
版本退回 git reset beaforeYourCommitNum (不要用--hard哈)
-
git add * ;git commit - m "blabla..."
-
git pull --rebase origin master
-
git push self master:newMaster
-
repo中,找到setting,更改defalt branch 为 newMaster(没有强迫症童鞋的可以到此为止哈,一下操作为改主分支为master)
-
repo 和 本地 都删除master
-
git push self master:master (创建新的远程master)
-
repo 和 本地 都删除newMaster git branch -d newMaster ()
以上是本人血的教训(周六加班,没过好~),欢迎大家学习指教,愿上帝祝福大家!