GIT初试

13年10月31日对GIT进行了初步的实验,以下是对GIT初试的一个简单总结。其中包括常用命令的使用方法。
1> 注册“name”和“email”等个人信息。
在使用git管理工程之前要登记自己的“name”和“email”等信息,以标记这个工程是“name”用户管理的。
1. git config –global user.name “myname”命令来告诉git我的名字是“myname”。
2. git config –global user.email “email address”命令来告诉git我的邮箱是“email address”。
        用这两条命令注册个人信息之后再后续的git命令中很多都会有所体现,以告诉用户这部分代码是由“myname”用户管理的。当然“email address”应该是在后来发送邮件的时候会自动提取这个email地址的(后续试用)。
2> 创建一个git管理项目。
现假如有目录“dir”,而我们要对dir目录下的所有文件进行git版本控制。首先需要以下步骤:
1. 在dir目录下使用git init 命令创建一个新的git版本管理项目。
这时dir目录下会生成一个“.git”的隐藏目录,该目录下的文件以及子目录应该是记录该管理项目的所有修改记录,包括branch,每一个commit记录等(因为我在.git下看到了branch目录等文件,具体每个文件的作用以后再慢慢熟悉分析)。
2. 用git add .命令把该目录下所有文件“添加到”被管理集合中。
这时dir目录下的所有文件都被git纳入到自己的管理范围了。这里有“work tree”、“index”和“仓库”的概念。这里我理解为三个层次,work tree代表现在的每个实际文件(比如加入到被管理集合中的.c、.h文件);“index”可以理解为“仓库”建立的索引,以帮助用户快速查找;而“仓库”就是完全记录了整个项目的开发过程(比如每一个commit,每一个merge)。
而git add. 是吧“work tree”的内容放到“index”中了,并没有把这个最初的版本信息写进“仓库”。
3. 用git commit 命令把“index”中的内容记录在案。
第2步中提到把“work tree”中版本信息放到了“index索引”中,这里的git commit 命令就是把“index”的记录信息写到“仓库”中,永久记录在案。
在每一次git commit的时候都是coder认为这段代码“值得”去记录在案,而不是随便改了一行代码,连测试都没有测试,这样的代码就毫无意义,没有必要“记录”在案。这个版本也就是没有意义的版本。
3> git commit –a命令
       如果现在我修改了在该项目下的一个XXX.c,之后我觉得在这个变动之后可以成为一个新的版本,我就需要用git add XXX.c命令把这个变动登记到索引index中,然后再用git commit把这个版本记录在案。
       这种情况下我就可以调用git commit –a命令代替以上两个步骤。这样就省去了一步的操作。
                 但是git commit –a在一些情况下不能达到预期的效果。比如现在我在项目中加入一个xxx2.c文件,这个时候就不能用git commit –a命令“偷懒”了。必须要先用
                    git add xxx.c、git commit 命令完成一个版本的提交。
4> 创建一个分支
       在项目开发的过程中会有“调试”这个阶段,这个阶段中可能会把原来的版本改的面目全非,以至于到最后这个调试不成功的时候无法恢复到原来的版本。这个时候如果有一个在“主干道”上给分出来一个分支,你就可以在分支上进行调试,如果调试不成功你可以直接把这个分支给干掉,如果成功了你可以把这个分支和“主干道”merge合并。
        当然这个功能应该不是分支最重要的目的(但是我觉得非常好,因为以前我经常遇到无法“复原”的问题,很苦恼)。觉得分支最重要的功能应该是“分布式”开发,他可以把一个项目的整体框架搭起来之后分给若干个人开发若干个部分,到最后每个人完成之后把每个“分支”“merge”起来,就成为了一个完整的系统。当然这种开发方式和之后提到的clone会有关系。
                  创建分支的命令git branch XXX,这个命令会在“master”主干道上分出来xxx分支,供我去胡搞。如果搞好了就和master合并,搞不好了直接删掉。
5> 切换所在分支
                 如果现在我在XXX分支上调试觉得我应该改一下master分支,这个时候就需要切换分支了。
命令:git checkout master,这个命令说我要切换到master分支,同样如果我要从master切换到xxx分支就需要用git checkout xxx命令。
命令:git branch,该命令用来查看你当前处于哪个分支,当前一共用几个分支。当前所处于的分支前面会有“*”号标注。
6> 合并分支
       其实在第4步中已经把合并的目的已经明确了,这里说一下合并的命令。
命令:git merge XXX,就是把XXX分支合并到主干道master上,但是这一点必须注意你现在所处的分支必须是master。
7> 删除一个分支
       如果我觉得这个胡搞的分支调坏了,需要删除。
命令:git branch –D XXX ,该命令直接删除XXX分支;
如果我觉得这个胡搞的分支调好了,可以和主分支合并,那就先合并。合并之后觉得XXX分支这个时候就没必要存在了,这时用
命令:git branch –d XXX删除。
8> git diff命令
git diff命令用来查看work tree下修改的代码,以确认是否是预期的效果。git diff命令只能用在work tree下,也就是说不能用在使用git add或者git commit –a命令之后。
9> git status命令
git status命令查看当前操作状态,分为以下四种情况:
1> 在git status之后出现:Changes not staged for commit说明只修改了work tree并没有用git add XXX增加到索引。
2> 出现:Changes to be committed,说明已经git add过了,但是没有git commit记录到“仓库”。
3> 出现:nothing to commit,说明现在项目已经保存了最新的版本,没有需要记录在案的。
4> 出现:untracked files,说明该项目中有新的文件加入,但是没有使用git add命令加入索引。
10> git log命令
        git log命令会显示出当前分支下所有版本更新的信息,显示出来的是每次在更新版本(使用git commit命令)是所编辑的版本信息。
如果想看每个版本之间有什么差异可以用命令,git log –p命令。这个命令会显示出每个版本之间的代码差异。
        每一个版本信息中都会有一个commit号,这个编号唯一标示了一个版本,比如commit c996bc68aee5724c78f6557449cd3bf3e9dbd683,其中c996bc68aee5724c78f6557449cd3bf3e9dbd683就代表了这个版本的编号。
        如果想查看更为详细的版本信息(具体到修改了什么代码,怎么修改的(增加还是删除等等)),需要用命令:git show commit编号,比如git show c996bc68aee5724c78f6557449cd3bf3e9dbd683。
11> git config --global core.editor vim命令
       在git commit的时候git会出来一个文件,让我们去填写版本信息。填写版本信息需要一个编辑器,但是我不知道git默认的编辑器是什么,个人认为很难用,所以就把它用上面的命令改成vim编辑器了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值