Git进阶学习

本文是Git的进阶学习篇,来源于Git官方网站.
入门篇可点击Git入门学习篇阅读.
进阶学习之基础篇可点击基础.
进阶学习之起步篇可点击起步.

分支

  1. Git仓库对象
    • blob对象保存着文件快照
    • 树对象记录着目录结构和blob对象索引
    • 提交对象保存着树对象索引和提交信息
  2. Git分支
    • 创建分支
      • git branch <branch>
      • git checkout -b <branch>创建分支并切换
    • 查看分支的指向
      • git log --oneline --decorate查看分支指向的提交点
    • 切换分支
      • git checkout  <branch>切换分支
    • 分支合并
      • git merge <branch>
    • 删除分支
      • git branch -d <branch>
    • 查看分支
      • git branch查看当前项目的所有分支
      • git branch -v查看当前项目的所有分支以及它们的前七位哈希值和提交说明
      • git branch --merged查看已经合并到当前分支的分支
      • git branch --no-merged查看未合并到当前分支的分支
  3. Git远程分支
    • 创建跟踪分支
      • 从一个远程分支检出的本地分支叫做跟踪分支,它跟踪的分支叫做上游分支
      • 设置跟踪分支的目的是在这个分支上进行工作。
      • 从远程仓库克隆时会自动创建一个跟踪分支 ,即master分支。
      • git checkout -b <branch> <origin>/<branch>
      • git branch --track <origin>/<branch>
      • git checkout <branch>如果检出的本地分支不存在而刚好存在一个与其名字匹配的远程分支,则在检出时会自动创建跟踪分支
    • 重命名跟踪分支
      • git checkout -b <branch> <origin>/<branch>
    • 修改被跟踪的上游分支
      • git branch -u <origin>/<branch>
    • 查看跟踪分支
      • git branch -vv
    • 删除远程分支
      • git push <origin> --delete <branch>
  4. Git变基
    • 变基是对两个已修改提交的处理,不同于合并,变基是把修改和补丁应用到另一个分支上,而合并是对两个提交快照的内容合并。
    • 变基与合并有截然不同的的提交历史,变基是线性的,而合并是并行的。
    • git rebase <branch>
    • 流程:先变基后合并。