• 《Got Git》学习笔记(一)


    《Got Git》学习笔记(一)

    《Got Git》学习笔记(一)

    最近想对自己的代码和文档进行归档整理,需要一个版本控制系统来进行 处理。自然而然的想到了目前流行的GitHub。

    GitHub,是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。

    使用GitHub会涉及很多Git的概念和操作,因此还需要对Git有一定程度的了解。虽然之前使用过ClearCase,但两者之间还是有很大的区别,因此在网上找了有关的资料进行学习。这本《Got Git》(中文名为《Git权威指南》,作者蒋鑫,由机械工业出版社华章公司出版)是我找到的最好的一本中文教程,但是由于我现在非常讨厌举着一本大部头来看书,实在太不方便,而且也找不到官方的电子版,只好可耻的下载了盗版电子书。真心希望以后能推出电子版,我一定会入手一本,呵呵。这个系列的文章是我在学习《Got Git》的过程中对书中的一些理解、总结和摘抄,不会对Git做详细的介绍,也不对Git使用的每一个步骤做说明,只作为学习过程记录之用,因此会出现些许不连贯,遇此情况各位只能自行脑补,甚为抱歉。若这系列文章存在版权问题,请联系我,我会立刻删除。若大家想要更深入的学习Git,十分推荐大家购买这本《Got Git》,里边深入分析了各个版本控制系统的优劣,全面细致地介绍了Git的使用,是一本很好的Git教材。

    1 Git简介

    Git是一种分布式的版本控制系统,它与传统的版本控制系统CVS、SVN的区别就在于“分布式”上。传统的版本控制系统多为集中式系统,就像我工作上使用的ClearCase。集中式的版本控制系统只有一个工作空间,为主空间,在ClearCase中就是项目的主分支。想要修改文件必须对文件进行检出(checkout),修改之后再检入(checkin),之后系统管理员把我个人分支上修改的文件合入主分支,整个修改过程才能完成。集中式的工作方式存在很多问题,其中一个就是依赖网络。代码修改人员必须能与版本控制服务器连接,才能对文件进行版本控制。例如我回到家里工作,不能连接到公司的版本控制服务器,这种情况下我就无法对文件进行检入和检出,也就没有办法跟踪文件的历史记录,因此也就谈不上版本控制了。分布式的版本控制系统很好的解决了这个问题,在分布式的系统中,每一个代码修改人员本地上都有一个项目的版本库,可以不依赖网络对该版本库进行修改,并且有该版本库的完全权限。本地的版本库会记录你的每一次修改提交,可以跟踪版本库的历史信息,实现了完全本地化的版本控制。当你能连接上主版本库服务器时,你可以把本地的版本库推送到服务器上,实现版本库的同步。Git等分布式的版本控制系统与SVN等集中式版本控制系统还存在很多的差异,想要了解更多的差别请阅读《Got Git》。

    2 Git安装

    我使用的操作系统为ubuntu 12.04 LTS,因此只介绍这个系统上的安装方式,其他方式请参考书中内容。

    • 最简单的方法,^_^
    $ sudo apt-get install git
    
    • 可查看git的版本验证是否安装成功
    $ git --version
    git version 1.7.9.5
    

    3 Git初始化

    涉及创建版本库,设置git的配置文件,进行第一次提交等操作。

    3.1 创建版本库

    创建版本库:

    • 创建一个工作目录,并初始化
    $ cd /my/git/workspace
    $ mkdir demo
    $ cd demo
    $ git init
    
    • git 1.6.5或更新的版本支持直接初始化并创建目录
    $ cd /my/git/workspace
    $ git init demo
    $ cd demo
    

    此时在demo工作区根目录下有一个名为.git的隐藏文件夹,该文件夹就是该工作区的版本库

    $ ls -aF
    ./ ../ .git/
    

    3.2 配置config文件

    有三个层次的配置

    • 系统级配置
    • 全局级配置
    • 版本库级配置

    3.2.1 系统级配置

    对/etc/gitconfig文件进行配置,该级别的配置可以被所有用户使用, 因此最好不要配置一些涉及用户信息的配置。该配置作用于系统中的所有 版本库。

    • 以下配置注册了一些命令的别名:
    $ sudo git config --system alias.st status
    $ sudo git config --system alias.ci "commit -s"
    $ sudo git config --system alias.co checkout
    $ sudo git config --system alias.br branch
    
    • 打开/etc/gitconfig文件进行编辑
    $ git config -e --system
    

    3.2.2 全局级配置

    对用户目录下的.gitconfig文件进行配置,一般用户相关信息可以在 这个文件内配置,该配置只作用于该用户目录下的版本库。 在使用版本库前要在全局配置中设置用户名和邮件地址。

    • 配置当前用户的姓名和邮件地址
    $ git config --global user.name  "your_name"
    $ git config --global user.email "your_email@example.com"
    
    • 在Git命令输出中开启颜色显示
    $ git config --global color.ui true
    
    • 打开~/.gitconfig文件进行编辑
    $ git config -e --global
    

    3.2.3 版本库级配置

    对版本库中的config(.git/config)文件进行配置。

    $ git config x.y.s others
    
    • 打开工作区下的.git/config文件进行编辑
    $ git config -e
    

    3.3 第一次提交

    此时工作区中还没有文件,我们必须创建一个文件并把它加入到工作区,然后才能对 修改进行提交。

    • 创建一个文件
    $ echo "HelloWorld!" > welcome.txt
    
    • 把文件加入到工作区
    $ git add welcome.txt
    
    • 提交对工作区的修改
    $ git commit -c "initialized."
    

    -c参数表示双引号中为此次提交的说明,git强制要求每次提交都必须附有提交说明。

    • 若要对未对修改的工作区执行提交,需要加上参数–allow-empty
    $ git commit --allow-empty -m "no modified."
    
    • 显示工作区的日志,附加–stat参数可以看到每次提交的文件变更统计
    $ git log --pretty=fuller
    $ git log --stat --pretty=fuller
    

    3.4 备份工作区

    使用克隆命令获取demo工作区的一个副本,并命名为另一个工作区

    $ cd /my/git/workspace
    $ git clone demo demo-step-1
    

    Author: mayuanchao <fredmyc@gmail.com>

    HTML generated by org-mode 6.33x in emacs 23

     
     
    分类: Git
  • 相关阅读:
    objectivec:初始化字符串
    WP7中代码设置ListBox和LongListSelector条目项的显示位置
    objectivec:重载
    objectivec:分配和初始化对象
    Access数据库中“所有记录中均未找到搜索关键字”的解决方法
    不用ms sql server 公共表达式CTE递归时的循环算法
    关于SQL SERVER 公用表达式CTE应用递归时的模型个人的理解
    [ZT]SQL Server 2008中的CTE递归查询
    [ZT]SQL Server 2008实现"编辑所有行"和"返回所有行"的方法
    数据库操作的表相关事项
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3021570.html
Copyright © 2020-2023  润新知