摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 但愿转载,保留摘要,谢谢!git
“房子是租的 但生活不是”github
远程master分支下代码被不当心提交了不少垃圾代码或项目删掉,想要回滚到之前的某一版本并删除commit log。怎么办?情景如图:vim
情景很简单。老板上传了个文件,我把他删掉了。有一种办法,把文件再push下,可是也不想他看到图中那comment(ps:这样我才不会被fire)。实现上面场景的代码以下:安全
vim A.txt
socket
git add .
分布式
git commit -a -m "add A.txt"
spa
git push
.net
rm A.txt
3d
git commit -a -m "我删除了老板的东西"
code
git push
————–分割线 ————–
一头雾水的小白怎么办?怎么办?怎么办?
push到远程的提交默认是不能修改的,可是必定要修改不是不行:
git push -f
No pic say 个 78。。。
》》工做区:就是咱们操做的目录
》》暂存区:操做目录的快照
》》本地版本库:Git的精髓,人人都是中央仓库。也就是Git分布式的好处,天然对比SVN这种集中式
》》远程版本库:Github这种中央仓库,能够达到共享。
经常使用的操做也如图所示,不言而喻了。
Talk is cheap,Show me the code or money~ 代码以下:
git log
git reset --soft ${commit-id}
git stash
git push -f
详解以下:
第1行:git log 查看提交历史,而后找到要回滚的版本。历史以下,
commit 84686b426c3a8a3d569ae56b6788278c10b27e5b
Author: JeffLi1993 <qiangqiangli1993@gmail .com>
Date: Fri Apr 8 19:11:32 2016 +0800
我删除了老板的东西
commit 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
Author: JeffLi1993 <qiangqiangli1993@gmail .com>
Date: Fri Apr 8 19:05:23 2016 +0800
add A.txt
咱们想要回滚到的版本就是:72bd6304c3c6e1cb7034114db1dd1b8376a6283a
第2行:git reset –soft 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
撤销到某个版本以前,以前的修改退回到暂存区(不懂看漂亮的图哦~)。soft 和 hard参数的区别就是,hard修改记录都没了,soft则会保留修改记录。
第3行:暂存为了安全起见。
第4行:git push -f
将本地master push 到远程版本库中, -f 强制覆盖。
git reset 回滚到某个版本以前
git push -f 强制push覆盖
欢迎点击个人博客及GitHub — 博客提供RSS订阅哦!
———- http://www.bysocket.com/ ————- https://github.com/JeffLi1993 ———-
微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket