上一篇介绍了学习 Git 的好工具,如果你没有看过,请先阅读:
闯过这 54 关,点亮你的 Git 技能树
今天我将带大家完成前十关。第一关在前文中已经完成,我们从第二关开始吧。
如对任何命令有疑问请看第一篇里的推荐教程。
第二关
根据提示,我们要配置「用户名」和「邮箱」,为什么呢?
你的代码提交后,特别是提交到开源社区,被别人看到,人家觉得这个代码写的真牛,想给你一个工作机会,怎么联系你?
通常,我们在 IDE 里创建一个新文件,IDE 都会自动加上日期,作者,邮箱等信息。其实我认为这都是过时的传统了,现在我们喜欢尽量保持源代码干净。
像创建日志,作者,邮箱这些信息都应该交给版本控制系统来记录。
当然如果你代码写的很烂的话就要小心了,别人 git blame
一下就可以问候你的家人了。
第三关
第四关
第五关
第六关
第七关
这一关对于不了解 Vim 的同学可能有一点麻烦。这里也是一个很贴近实际的场景,用 Vim 编辑文件的时候,会产生一个 .swp
文件,这个文件的作用是:在你不小心退出了 Vim 或 Vim 自己崩溃后,再次编辑这个文件,就会提示你存在一个 .swp
文件,询问是否恢复。
它属于临时文件,显然不应该被提交到 VCS 里去。所以 Git 有一个机制让我们可以忽略某些文件。
第八关
根据提示来看一下帮助
git gitignore --help
,输入
/negate
进行搜索,一下就定位到下面这一段:
![](http://ww3.sinaimg.cn/large/61412e43gw1ezj87kdms2j21kw06pn2w.jpg)
根据帮助我们知道了,可以用 !
来对模式取反。
所以我们编辑 .gitignore
,追加如下两行:
*.a
!lib.a
第九关
git status
是一个非常常用的命令,插一句题外话:我给它配一个别名 gst
,这样敲起来就非常方便。
第十关
这两关都是考察基本概念,一个文件的几种状态:
- untracked - 新增的文件,Git 根本不知道它的存在
- not staged - 被索引过又被修改了的文件
- staged - 通过
git add
后被即将被提交的文件
这里一看状态就知道了,如果现在执行
git commit
,只有最上面的两个文件会被 commit。