跳至主要內容
1. 常用Git命令清单

1. 常用Git命令清单

一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。

几个专用名词的译名

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

1 新建代码库

# 在当前目录新建一个Git代码库
$ git init

# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]

# 下载一个项目和它的整个代码历史
$ git clone [url]

Mr.R大约 6 分钟Git
2. Git变基合并

2. Git变基合并

1 rebase分支合并

1.1 说明

以下 v2 是某个需求的开发分支, dev是总的开发分支,v2 是基于dev分支签出的。

当完成v2的开发后,需要把代码合并到dev,我们可以使用rebase进行合并:

# 首先将 v2 push到远程仓库
git add .
git commit -m 'xxx'
git push origin v2

# 切换到 dev 拉取最新代码
git checkout dev
git pull origin dev

# 切换到 v2
git checkout v2
git rebase dev # 将 v2 的所有[commit] 变基到(应用到) dev

# 切换到 dev
git checkout dev
git merge v2  # 将 dev分支 快进合并 (此时 (HEAD -> dev, v2) [commit] 两个分支指向同一个提交)

# 查看 原v2的[commit]记录 是否在dev分支的最前面(变基成功会把v2的提交记录应用到dev分支的最前面)
git log

# 如果到这一步发现有问题,尝试使用 git --abort中止变基,如果还是有问题的可以在dev分支上使用《后悔药》操作, 再到v2分支上使用《后悔药》操作,即可使两个分支都回退到 rebase变基 之前的状态

# 试运行项目是否有问题
yarn start

git status # 查看状态是否有问题
git push origin dev # 推送到远程仓库的 dev


Mr.R大约 4 分钟Git
2. Git分支-分支原理

2. Git分支-分支原理

Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。

首次提交

在进行提交操作时,Git 会保存一个提交对象(commit object)。

假设现在有一个工作目录,里面包含了三个将要被暂存和提交的文件。 暂存操作会为每一个文件计算校验和(使用 SHA-1 哈希算法),然后会把当前版本的文件快照保存到 Git 仓库中 (Git 使用 blob 对象来保存它们),最终将校验和加入到暂存区域等待提交:


Mr.R大约 6 分钟Git
5. Git分支开发工作流

5. Git分支开发工作流

文档:Git分支开发工作流

长期分支

因为 Git 使用简单的三方合并,所以就算在一段较长的时间内,反复把一个分支合并入另一个分支,也不是什么难事。 也就是说,在整个项目开发周期的不同阶段,你可以同时拥有多个开放的分支;你可以定期地把某些主题分支合并入其他分支中。


Mr.R大约 4 分钟Git
6. Git分支-远程分支

6. Git分支-远程分支

远程引用是对远程仓库的引用(指针),包括分支、标签等等。

远程分支本质上也是一个指针,指向远程地址

查看远程引用列表与信息

git ls-remote <remote> # 远程引用的完整列表
git remote show <remote> # 远程分支的更多信息

Mr.R大约 11 分钟Git
7. Git分支-变基

7. Git分支-变基

在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。 在本节中我们将学习什么是“变基”,怎样使用“变基”,并将展示该操作的惊艳之处,以及指出在何种情况下你应避免使用它。

变基的基本操作

请回顾之前在 分支的合并 中的一个例子,你会看到开发任务分叉到两个不同分支,又各自提交了更新。


Mr.R大约 14 分钟Git
2