DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

Git初体验


本文是毛豆网微课程"Git初体验“的文稿。

Git初体验

Git有什么用?

Git是Linux创造者Linus Torvalds编写的、目前人气最旺的版本控制工具。

那么版本控制是做什么的?

写代码免不了修修改改,比如经过一天的奋斗,你完成了一个”寻找最萌妹子“算法, 刚向死党炫耀,就发现选出来的居然是最萌喵星人,太没面子了,回去仔细研究一番, 发现漏了一层筛选条件,于是通宵达旦修改算法,天蒙蒙亮的时候,你发现自己的方法行不通, 需要回退到修改前的状态,换一种算法实现。但这一晚上修改了4、5个文件, 改动散布在不下十处地方,怎么把代码恢复到修改前的状态?

这个时候,是不是希望有哆啦A梦的时光飞毯,帮你回到昨天晚上?

是的,Git就是你要找的时光飞毯。

当然它的功能不止是在代码历史上跳跃,还有很多更炫酷的功能,但千里之行始于足下,让我们从最基本的功能开始吧!

用Git做简单的版本控制

Git最基本的用法是在命令行环境中通过执行Git命令的方式完成的。

比如你NB闪闪的算法保存在一个叫"zuiMeng"的文件夹里, 第一步要做的,是启动命令行环境,用cd命令把"zuiMeng"设置为当前目录, 然后执行:git init,这样你的"zuiMeng"目录就具备回到过去的魔力了。

现在你可以随意修改文件了,修改、删除都随你(当然你要作死把"zuiMeng"这个文件夹都删了Git就帮不了你了), 如果对修改满意,提交你的改动到代码库:

git add -A
git commit -m "commit message"

"commit message"一般是这次修改包含的内容,比如”增加了过滤宠物功能“之类的。

如果对改动不满意呢? 执行git reset --hard HEAD,搞定! 什么?你后悔了,要找回刚才的修改? 这个Git还真能满足你,不过这就不是本课程的范围啦, 记住你现在还是个菜鸟,改代码前多动动脑子想清楚没坏处。

这样周而复始,提交了很多次,这时可以用git log来查看你的提交历史。 如果想回到其中的某一次,首先需要在git log界面中记下目标commit的hash值, 这个值很长,只记下前6位就行了,假设这个值是"ef5a5b",那么要跳转到这次提交, 执行git checkout ef5a5b,看看你的文件,是不是变回到那次提交时的模样了?

如果想跳回最后一次提交,除了重复上面的过程外,还有更简单的方法: git checkout master,这是因为"master"是一个特殊标记,代表你的最后一次提交。

好,这就是Git的基本用法了,总结一下:

  1. 初始化代码库:git init;

  2. 修改文件;

  3. 提交改动到代码库:git add -A,git commit;

  4. 查看版本历史:git log;

  5. 回退到历史版本:git checkout <hash>.

Git还能做什么?

  1. 分布式开发

    比如你在北京,刚在广州找到一位创业小伙伴,有了Git,就不用搬到广州去啦, 也不必像Subversion那样,在公网架设代码库,只要在github上创建一个公共代码库, 走遍天涯海角,你需要就是一个WiFi接入点了。

    如果你不希望大家都能看到你们的代码,推荐把公共代码库放在bitbucket上。

  2. 并行开发

    不管你的团队有多少开发者,大家可以同时开发不同的功能,然后合并在一起。 当然会存在冲突的风险,这里推荐一个高逼格程序员必备神器git-flow, 用它武装你的开发团队吧,从此妈妈再也不用担心我们代码冲突啦~

Git FAQ

  1. 我只会用Windows,能用Git吗?

    没问题!下载msysgit安装包,一路Next安装好之后就可以用了,除了基本的命令行,还附带了一个图形界面工具,是不是很贴心?

  2. 那些命令记不住,能推荐一款纯图形界面的Git工具吗?

    当然可以。如果用Windows,上面介绍的msysgit的图形界面工具就很好了;如果用Linux,Git自带了gitk工具,Mac俺没用过,自己搜搜吧。

  3. 我英语不好,能给点中文资料吗?

    这个真帮不了你了,虽说Git中文资料蛮丰富的,可你的目标不是变成靠Copy/Paster大法挣千把块钱30岁以后转行产品经理的苦逼码农吧? 如果你希望通过写代码打开一段崭新的人生,从现在开始阅读官网文档吧, 我带过那么多小弟小妹被我逼着看文档,现在他们自己混饭吃,没有一个用Baidu找中文文档看的。



Published

May 10, 2015

Last Updated

May 10, 2015

Category

Tech

Tags

  • git 36
  • tutorial 2

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor