GIT之初来咋到

书接上回,上一节书我们回顾了GIT的前世今生,将GIT 与Clearcase做了一个比较。这篇我们一块来到GIT的地盘。初来乍到,我们从一些常用的,基本的命令开始。如果您是GIT的高手,请无视这篇文章,无须多费时间在这上面.

这篇blog会讲到的部分有以下4个:

1.      混沌初开(Git init & clone)

2.      与时俱进(Git Pull & Fetch)

3.      添砖加瓦 (Git add & commit & push)

4.      明察秋毫 (Git log & show)


1. 混沌初开 (Git init & clone & remote)

如果我们想将现在的项目放到GIT里面去,那么我们可以将命令行转到当前目录下,执行 “git init” 这个命令。这将会创建一个.git的文件夹。这个文件里面包含了GIT所需要的所有信息,包括 项目的设置,index,index lock,branch的信息,change的信息,ref的信息等等。就是这么简单的一个命令,就能够把GIT的仓库创建起来,酷吧?

而如果项目已经被其他伟大的同事加上去了,那我们要做的就是从给定的地址上面,把代码库克隆一份到本地,这样才能对代码进行修改。可以用下面的命令完成:


"git clone Your_Account@TeamPC/Your_Project.git"  


然后你就等啊等,直到代码都下载到本地就OK。注意哦,1) 即使是克隆下来的代码,里面也有一个.git的文件夹,里面同样了包含了整个代码库的历史信息以及index等等,跟init出来的文件结构一样,只不过里面已经有其他内容了。 2)代码库有两种,上面的命令克隆下来的代码库是 personal (个人的),里面包含了代码以及相关的repository信息,而如果clone的命令带了这个参数 “--bare”,那么克隆下来的就只有repository的信息,而不能看到任何源文件。具体区别跟用法 会在后面的文章讲到


2.与时俱进(Git Pull)

别人都已经开发到2.0了,我们总不能老是拿着1.0的代码在看啊!这个时间我们就需要与时俱进,去拿到别人已经做好的更新. GIT就跟孔乙己估计有亲戚关系,茴香豆的“茴”字有4种写法,而GIT拿代码也有2种拿法:

“git fetch”

“git pull”

Fetch只是将别人的改动拿到本地的repository里面,但是不会跟working folder做merge。也就是说只拿不用,在我们的源文件里面还是看不懂别人的改动,只在history tree里面看到; 而Pull是将别人的改动拿到本地的repository里面之后,还将这些个改动添加到我们的源代码里面去。 可以这样说 Pull = Fetch + Checkout


3.添砖加瓦(Git add & commit & push)

人不能太自私,老是拿别人的东西,自己又藏着掖着。所以我们的代码改动也要放到公共代码库里面去。怎么弄呢?如果是Clearcase,我们需要 checkout + checkin + delivery. 而GIT里面也是需要一个类似的过程, add + commit + push. GIT里面有3块不同的地方,一个是working tree, 也就是我们平时看到源代码的地方;第二个是index,从物理上讲,这只是一个文件。再说一个,GIT的文件无外乎两种状态 (被跟踪跟未被跟踪),index就是记录这些个被跟踪的文件信息;第三个地方时local repository,可以看做.git里面的东东。当添加一个文件或者修改一个文件之后,我们需要用 git add 的命令告诉GIT这个文件需要被跟踪,而如果仅仅是被跟踪的话,别人是拿不到这个文件的改动的,因为GIT只认commit的信息。所以这个需要就需要commit啦~ commit会记住我们刚刚修改了哪些文件,由谁修改的等等信息。以上的add / commit的动作都只是在本地,别人根本不知道你在干虾米。这个时候,我们需要用git push的命令告诉 team PC的GIT 我们改了什么!

都说程序员都是特别懒的,如果每修改一个文件就需要add一下还真有够烦的,也容易漏,GIT也早就想好了。怎么弄呢? "git add" +"git commit" = "git commit -a" 这个命令将会找出前面所修改的所有文件,然后一次性加到index里面去,再commit! 爽了吧 这下!


4. 明察秋毫 (Git log & show)

若要人不知,除非己莫为。只要我们修改了文件,并且上传到服务器上,那么别人就可以看到是谁改的,改了什么。怎么看呢? "git show" + "git log". GIT的历史记录是由一些列相关联的”commit”所组成的。每一次“commit”都会有一个唯一的名称。如下黑体字所示:

[lazypig@lazypig project]$ git log
commit 1a6668402aadd3cd41b3fe8c84a8658da
Author: lazypig <lazypig@gmail.com>
Date:   Wed Sep 24 13:16:46 2011 +0800

after pull from rocrocket

Hello!!!!!

所以git log跟show的命令均可以通过指定 commit的hashcode来查看详细的log信息.

以上简单地介绍了GIT的4种基本的操作命令组,由于时间的关系,这篇文章就先写到这里,下篇将会介绍稍微复杂一些的命令组!


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值