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详细介绍
2.1 改写提交
有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交
$ git commit --amend
3. git 撤消
总是会有某个commit,我们不想要的情况,这时我们就需要进行撤消操作了。但是撤消的程度有可能不一样。 git 给我们提供了两种方式
3.1 git reset (可以控制撤消程度)
撤消操作是移动指针位置。我们以v5 撤消到v4 为例,开始记录在三个区域的对应的位置
3.1.1 只想还原仓库里,保留暂存和工作区的
使用: git reset --soft xxxx
3.1.2 还原仓库,重置暂存区的,保留工作区
git reset --mixed xxxx
3.1.3 还原仓库,重置暂存区的和工作区
git reset --hard xxxx
3.2 git revert(直接还原到某个版本)
直接用一个新的commit 来中和对应的提交。 如下图:
3.2.1 相关命令
git revert xxx