总结:雪峰老师的git教程确实没有其他花里胡哨的东西,都是干货。自己平时在用git管理项目,对不怎么熟悉的命令mark一下。
git diff
可能用到的场景:上周写了代码没有提交,周一来后忘了写的什么,不敢提交,
git diff
一下,看看改了啥(这里是跟之前add或者commit
的对比)。改的文件太多?不妨用git diff -- <file>
(尖括号写文件名)一个一个看。
git log
可能用到的场景:搞忘了最新版本是否提交。不用登录到远端仓库去看,git-log
打印出commit
记录,太多要翻页?git log --pretty=online
单行显示每次commit
.
git reset
可能用到的场景1:之前提交的版本发现大面积错误,想回退到之前的版本从新写。git reset --hard HEAD^
回退到当前版本的前一个版本,更多回退请参考雪峰老师的教程修改HEAD^
。
可能用到的场景2:对我炒鸡有用。代码已经git add
了,突然发现某个地方没改对,要重新改,那我要先commit
,事后改完再覆盖掉吗?NO,get reset HEAD <file>
,将暂存区(add
)的内容回退到工作区,改好再提交。
git checkout
可能用到的场景1:不用说,切换分支,git checkout <branch-name>
,创建并切换到该分支git checkout -b <branch-name>
。
可能用到的场景2:代码改着改着发现一塌糊涂,赶紧git checkout -- <file>
,用最新的add
或者commit
后的代码覆盖掉(一键还原)。
可能用到的场景3:不小心删除了本地的一个文件?虽然windows在不关闭当前窗口的情况下可以ctrl+z
抢救一下,但是也可以用git checkout -- <file>
苟一波,还原回来。
可能用到的场景4:一般clone
一个项目,默认访问master
分支,但我想在dev
分支开发,git checkout -b dev origin/dev
,本地创建一个关联了远程dev
分支的dev
分支。
win缓存凭证,免二次登录(2.7.3+)
git config --global credential.helper manager
最后:之前自己和伙伴都是直接在dev
分支上开发新功能,灵活度还是不够(功能没做完,提交上去后很不好),需要开发新功能时,应该在本地创建一个基于dev
的分支,开发完成后再合并到dev
,最后删除本地新功能分支。