之前在微博上看到有人介绍code school, 评价课程体验非常好。“要想知道梨子的滋味,还得自己尝一尝。”作为公开课爱好者(作者正在努力克服enroll里以后没办法坚持到底的问题…),自然不能放过这样的机会,注册了一个帐号玩了一把,感想是——
非常赞!强力推荐!
之前也读过一些git教程,比如Github自带的入门文档和我最喜欢的入门教程git-简易指南,但这些文档似乎太过简略了一些,注解也少了一些,操作了一遍还是感觉云雾缭绕。而图书馆里的《Git权威指南》之类的大部头又没耐心看下去。code school的Try Git在难易繁简的平衡中可谓恰到好处,所介绍的git命令足以应付初级使用者的需求,关于命令的注释和使用tip又很贴心,交互式的环境能够给出实时的feedback(主要功能还是通过“逼迫”学习者亲手敲一遍命令来巩固记忆)
以下内容是Try Git
课程中提到的git命令,给还没有上过这门课程的童鞋一个预览,也是自己的Git命令速查手册。
在当前目录下创建git目录,生成/.git的隐藏目录
git init
查看当前repo的状态
git status
加入文件到staging area
git add [filename]
[注] 若要加入当前目录下的所有文件
git add .
若要加入git目录下(包括子目录)所有以suffix为后缀的文件,此处若没有’’,则shell将解析正则表达式,将当前路径下(不包括子目录)的文件加入staging area
git add '*.suffix'
将文件从staging area删除
git remove [filename]
查看git commit历史
git log
设定remote repo的URL地址,为将本地代码仓库push到远程服务器做准备
git remote add [repo name]
Git doesn’t care what you name your remotes, but it’s typical to name your main one origin.
将local repo push到服务器端。-u 参数可以记忆设置,下次push时只需使用git push命令即可
git push -u origin master
origin是remote git repo的名字, master是local repo的默认branch name
隐藏更改
git stash
将remote repo下载到本地
git pull origin master
查看更改
git diff
如果想查看最近一次的更改,使用git diff HEAD
命令, HEAD指针指向最近一次的更改.
从staging area中删除file
git reset [filename]
恢复到上次commit的状态
git checkout -- [filename]
创建新分支
git branch [branch_name]
查看当前分支情况
git branch
切换当前分支
git checkout [branch_name]
创建并切换到名为branch_name的分支
git checkout -b [branch_name]
同时从物理目录和git staging area中删除文件
git rm [filename]
删除文件夹及其子目录中的内容
git rm -r [folder_name]
将branch_name分支下的内容和当前分支合并
git merge [branch_name]
[注]
有时会出现conflict, 解决的思路是“确定究竟哪部分代码是要保留的”,似乎属于比较高级的议题,参见pro git
删除分支
git branch -d [branch_name]
[注]
未经merge操作的分支不能通过上述命令删除,使用git branch -D/--force/-f [branch_name]
强制删除