1. 获取提交信息(commit)
git show 1c002d(哈希值的前几位): 获取提交的信息;git show HEAD^: 显示HEAD的上级(parent)提交的信息;git show HEAD~: 同上;git show HEAD~3: the first parent of the first parent of the first parent;
// experiment 分支上,还没有合并到master分支上的内容
$ git log master..experiment
D
C
// 变体:
// git log origin/master..HEAD: 本地分支还未合并到远程分支的内容;

// 显示每个分支独有的部分
git log master...experiment
// 升级版
git log --left-right master...experiment
2. 更改历史记录(Rewriting History)
git commit --amend: 更改最后一次提交的历史记录;
3. 重置(Reset)
- 三颗"树"
- 此处"树"指文件的集合;
- "HEAD": Last commit snapshot, next parent;
- "Index": Proposed next commit snapshot;
- "Working Directory": Sandbox;

3.1 重置情况一
git reset 9e5e6a4或git reset --soft HEAD~

3.2 重置情况二(默认)
git reset --mixed HEAD~或git reset HEAD~

3.3 重置情况三
git reset --hard HEAD~

4. 合并分支进阶
git checkout --conflict=diff3 hello.rbgit config --global merge.conflictstyle diff3: 在配置文件中设置;

- `git log --oneline --left-right HEAD...MERGE_HEAD`: 查看合并时,每个分支包含的操作日志;

- `git log --oneline --left-right --merge`: 查看含有冲突的日志;

4.1 复原分支
git reset --hard HEAD~: 将合并的分支复原(针对本地仓库)


- `git revert -m 1 HEAD`: 保存主分支(C6)的内容,将合并的分支(C4)内容剔除

git revert ^M: 将剔除的分支,重新合并到主分支;git merge topic

参考资料: