分布式版本控制系统在日常开发中使用越来越频繁,谁没经历过手一抖,不小心把错误的内容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 ()


以上是本人血的教训(周六加班,没过好~),欢迎大家学习指教,愿上帝祝福大家!