Git的提交与撤消

1.git 提交的准备工作

在Git工作原理 中就提到过,git commit 只会commit 暂存区里的内容
一句话总结准备工作: 在执行commit 前 都要 执行git add

2.git 提交的操作命令

2.0 git操作命令就是移动指针进行前进后退

2.0.1 HEAD

HEAD指向的是现在使用中的分支的最后一次更新

2.0.2 基于hash 索引值进行前后移动

如 git reset --hard xxx

2.0.3 使用^ 只能进行后退操作

如 git reset --hard HEAD^
相对HEAD 进行后退 一个^ 后退一个,^^ 后退2步,n 个后退n步
问题来了如果要后退10步,要写10 ^很烦,就有~

2.0.4 使用~ 只能进行后退操作

如:git reset --hard HEAD~10
表示后退10 步

2.1 git commit

执行一次commit 操作就相当于生成了一个新 的快照

$ git commit -m "注释"
[master 463dc4f] Story 182: Fix benchmarks for speed
 2 files changed, 2 insertions(+)
 create mode 100644 README

注释规范会在git 在工作中的FAQ详细介绍
Git的提交与撤消_第1张图片

2.1 改写提交

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交

$ git commit --amend

3. git 撤消

总是会有某个commit,我们不想要的情况,这时我们就需要进行撤消操作了。但是撤消的程度有可能不一样。 git 给我们提供了两种方式

3.1 git reset (可以控制撤消程度)

撤消操作是移动指针位置。我们以v5 撤消到v4 为例,开始记录在三个区域的对应的位置
Git的提交与撤消_第2张图片

3.1.1 只想还原仓库里,保留暂存和工作区的

使用: git reset --soft xxxx
Git的提交与撤消_第3张图片

3.1.2 还原仓库,重置暂存区的,保留工作区

git reset --mixed xxxx
Git的提交与撤消_第4张图片

3.1.3 还原仓库,重置暂存区的和工作区

git reset --hard xxxx
Git的提交与撤消_第5张图片

3.2 git revert(直接还原到某个版本)

直接用一个新的commit 来中和对应的提交。 如下图:
Git的提交与撤消_第6张图片

3.2.1 相关命令

git revert xxx

你可能感兴趣的:(项目管理,工具系列)