Git 学习笔记

日期: 04 月 24日, 2015
标签:

Git 基础

1. Git 记录文件内容 (snapshot),而非差异 (patch)。

01.png

2. 文件的三种状态

02.png

3. 基本操作

  • 初始化 Git 仓库

    git init
    
  • 添加文件到暂存区

    git add <file>
    
  • 将文件撤出暂存区

    git reset HEAD <file>
    
  • 提交

    git commit -m <comment>
    
  • 撤销对工作区的更改(危险)

    git checkout -- <file>
    
  • 添加远程仓库

    git remote add <name> <url>
    
  • 推送到远程仓库

    git push [remote] [branch]
    
  • 从远程仓库抓取

    git retch [remote]
    git pull
    

分支

1. 基本操作

Git 的分支是指向 commit 的指针,因此十分轻量。

03.png

HEAD 指向当前所在分支。

04.png

  • 新建分支

    git branch <branch>
    git checkout -b <branch>
    
  • 切换分支

    git checkout <branch>
    
  • 删除分支

    git branch -d <branch>
    

2. merge

git merge <branch>
  1. 一个分支是另一个的祖先

    快进 (Fast forword)
    05.png

  2. 分支分叉

    把两个分支最新的快照以及二者最新的共同祖先进行三方合并,合并的结果是产生一个新的提交对象
    06.png

3. rebase

把一个分支里产生的变化补丁在另一个分支上重新打一遍

git checkout experiment
git rebase master

07.png
08.png

rebase 时应注意,不要对公共分支(一般为 master 分支)进行 rebase,公共分支只允许快进(Fast forward)。

重写历史

1. 改变最近一次提交

git commit --amend

2. 修改多个提交

例如,修改最近 3 个提交:

git rebase -i HEAD~3