《版本控制之道——使用git》读书笔记(可作git和github入门)

额……这个文章专为新手准备啊   老手就不要来嘲讽了


  第一部分   github入门


  本来应该先了解git的,但是新手才不管那些的,先把代码共享了爽一把再说(我还是新手,了解新手的心态)。


  网上有一篇《两分钟学会在GitHub托管代码》写的很好,能快速教你使用github
  http://blog.youkuaiyun.com/duxinfeng2010/article/details/8654690


  不过文中有些地方解释的不够清楚,我来补充一下


  >>touch README.md

  >>git init

  >>git add README.md

  #这里需要添加一句git add hello.c   把你的项目文件加进来,任何格式都可以
  #如果是要把目录下面的子文件夹及里面的所有内容加进来的话  可以使用 git add .(这是个英文句点)

  >>git commit -m “This is a description”

  >>git remote add origin https://github.com/daoxunchen(此处是你的用户名)/Hello-World(之前添的项目名称).git  这里是给你的远程仓库起了个别名,我个人理解成#define

  >>git push -u origin master


  第二部分   git入门

  暂时先跟着书的顺序来,学完这本书以后,我再看情况重新排版


  第一篇、初探git


  首先安装git

  安装好git后,有几个地方要设置一下

  >>git config --globle user.name “daoxunchen”

  >>git config --globle user,email “daoxunchen@163.com”



  用下列命令检查上述设置是否成功


  >>git config --globle --list

  user.name=daoxunchen

  user.email=daoxunchen@163.com


  这两个全局变量是必须设置的,其他的可以通过git help config获取详细信息(其中大部分很少用得上)


  还有一个,是对git命令的输出采用不同的颜色表示


  >>git config --globle color.ui “auto”    #或者always,其值默认是false (自己根据个人喜好吧)

  前面也提到了,对于某个命令可以通过git help <command>查询此命令的详细描述


  接下来正式开始学习git


  学习git之前先要理解两个概念(版本库,工作目录树)

  版本库:版本控制系统用来存储所有历史数据的地方
  (我个人理解,就相当于往银行存钱,银行里既存着你的钱,也保存着你存钱的过程,什么时间在什么地点存的等等)

  工作目录树:是版本库的一个“断面试图”,包含所有开发该项目所需要的全部文件,包括源代码文件、构建文件、单元测试文件等。
  (你想从任意一个历史时刻开始工作,那么工作目录树中就是那个时刻中的工作状态,而“检出”,就是指把工作目录树更新成指定时刻的工作状态)

     注:对于git来说,版本库是和工作目录在同一个目录下的


  以一个简单的项目实例,介绍一下git的基本用法

  创建版本库

  给这个项目取名myhelloworld

  >>mkdir myhelloworld

  >>cd myhelloworld

  >>git init


  初始化空的 Git 版本库于 /home/daoxunchen/git_test/myhelloworld/.git/


  这样一个版本库就创建好了,git init会创建一个.git目录,用来存放版本库的全部数据


  myhelloworld作为工作目录树存放从版本库中检出的代码。


  创建一个文件hello.c,其中代码如下:

  #include <stido.h>

  int main()
  {
  printf(“Hello World!\r\n”);
  return 0;
  }

  这就是我们将来不断更新的代码文件。要让git记录跟踪此文件,首先要把这个文件添加到版本库的索引(index)中


  >>git add hello.c

  git add 命令可以添加文件,也可以添加目录


  然后提交代码

  >>git commit -m “add in hello.c”

  [master(根提交) d6be510] add in hello.c

  1 file changed, 7 insertions(+)

  create mode 100644 hello.c

  git commit创建一个提交记录,一个提交记录就相当于账单中的一笔收支记录,git把提交者的姓名和邮件地址(前面设置过),以及留言都添加到提交记录中,然后保存到版本库中

  -m后是一个提交留言,一般用于说明添加了什么文件,做什么用的,修改代码的原因等等。


  刚才我们已经提交了一个文件到版本库中。使用git log可以查看相关信息

  >>git log

  commit d6be510f2f91b5959da045ab08a8119c96b2707c

  Author: daoxunchen <daoxunchen@localhost.localdomain>

  Date:   Mon Apr 1 19:58:39 2013 +0800

  add in hello.c

  输出的第一行是提交名称,这是git自动生成的sha-1码;第二行是提交者的信息;第三行是提交日期;最后是提交留言。


  处理文件修改

  修改hello.c

  #include <stido.h>

  int main()
  {
  printf(“Hello World!\r\n”);
  printf(“World , Hello?\r\n”);
  return 0;
  }

  修改完毕后,git可以检测到文件被修改


  >>git status

  # 位于分支 master

  # 尚未暂存以备提交的变更:

  #   (使用 “git add <file>...” 更新要提交的内容)

  #   (使用 “git checkout -- <file>...” 丢弃工作区的改动)

  #

  #       修改:      hello.c

  #

  no changes added to commit (use “git add” and/or “git commit -a”)


  输出结果表示git监测到文件修改,但不知如何处理


  修改过的文件在“尚未暂存以备提交的变更:(Changed but not updated)”下列出来,


  代码从工作目录树到版本库中间还有一个区域,叫索引(index),又叫暂存区,暂存区中存放准备提交到版本库中的修改。


  >>git add hello.c


  >>git status


  # 位于分支 master


  # 要提交的变更:


  #   (使用 “git reset HEAD <file>...” 撤出暂存区)


  #


  #       修改:      hello.c


  #


  git add 前面是用来添加新文件的,此处表示将文件存入暂存区


  >>git commit -m “add worldhello in hello.c” -m “This allows for a more comment”


  [master 77880dc] add worldhello in hello.c


  1 file changed, 1 insertion(+)


  这里使用了两个-m参数。git可以接受任意多次提交留言,每次另起一段。


  >>git log -1

  commit 77880dc3e1b95f3b6d2a08e43c6e6c0735e36382

  Author: daoxunchen <daoxunchen@localhost.localdomain>

  Date:   Mon Apr 1 20:36:55 2013 +0800

  add worldhello in hello.c

  This allows for a more comment

  git log跟一个新参数-1,数字表示log输出的提交记录的个数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值