gitk

第一部分 简介和配置

Created by Charles Liu

Agenda

  • 关于版本控制
  • 安装git
  • 配置git

版本控制

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
Source: gitbook

版本控制的功能

版本追溯

按需保存

按时自动保存
graph BT A[1:00]-->B[1:30] B-->C[2:00] C-->D[2:30]
按需保存
graph BT M[初始版本]-->N[修正邮件格式错误的bug] N-->O[增加微信认证功能] O-->P[修改说明文档]

关联存储

graph LR subgraph ' id1["index.html
v1"]-->id2["index.html
v2"] id2-->id3["index.html
v3"] id3-->id4["index.html
v4"] end subgraph ' id21["style.css
v1"]-->id22["style.css
v2"] id22-->id23["style.css
v3"] id23-->id24["style.css
v4"] end subgraph ' id31["main.js
v1"]-->id32["main.js
v2"] id32-->id33["main.js
v3"] id33-->id34["main.js
v4"] end

共同编辑 集中管理


source: gitbook

分布存储 集中管理


source: gitbook

git的诞生

Linux Torvalds
Linus Torvalds

git的设计目标

  • 速度
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

开发进度...

  • 3 April 2005, development began
  • 7 April 2005, git became self-hosting
  • 18 April 2005, first merge of multiple branches
  • 29 April 2005, performance goal reached
  • 16 June 2005, git managed the kernel 2.6.12 release

安装git

git shell

git bash

处理提交——git-gui

git bash

查看commit历史——gitk

git bash

git shell的优势

  • 使用git的所有功能
  • UI有多种版本, 不方便交流
  • 易于编写自动化脚本
  • 使用效率更高

在Linux上安装git


以ubuntu为例, 安装git只需要执行一行命令


    $ sudo apt-get install git
  

安装图形界面工具gitk和gui


    $ sudo apt-get install gitk git-gui
  

在Mac上安装git


官方维护的安装包
https://git-scm.com/download/mac

用Homebrew包管理器安装git

The missing package manager for OS X http://brew.sh/

  • 安装git
  • 
          $ brew install git
        
  • 配置git-gui
  • 编辑Home(家)目录下的.gitconfig文件. 添加下述内容:
    
    [alias]
        gui = !sh -c '/usr/local/Cellar/git/2.9.2/libexec/git-core/git-gui'
        

在Windows上安装git

Git for Windows

安装: https://git-for-windows.github.io/

cygwin

Get that Linux feeling - on Windows

cygwin

安装cygwin下的git环境

Shell简介

  • 了解命令: ls, cd, mv, rm, echo, cat
  • 了解 | 及 > 或 >>
  • 知道什么是Home(家)目录
  • 命令提示符及当前目录, pwd

git的配置——git config

  • 全局配置
  • 对当前用户的所有版本库生效. 用*git config --global*来设置和查看. 保存在${HOME}/.gitconfig文件中
  • 局部配置
  • 只对当前版本库有效, 保存在.git/config文件中

配置作者名和邮箱

每次保存一个版本, 都会记录提交版本的作者名和邮箱, 因此需要在使用git之前设置好.


$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
    

其它配置

  • 配置编辑器
  • 比如习惯使用emac的同学, 可以这样配置:

    
    $ git config --global core.editor emacs
          
  • 配置git log --graph 输出的格式和颜色
  • 
    $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
            
  • 配置冲突解决工具
  • 安装cygwin下的git环境

查看配置


$ git config --list --global
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
      

获取帮助


$ git help <verb>
$ git <verb> --help
$ man git-<verb>
  

比如


$ git log --help
$ git help log
$ man git-help