git reset
的意义是: git-reset - Reset current HEAD to the specified state,它改变的本地仓库中的文件和index中的记录,并没有改变当前工作目录之下的文件。运行这个命令以后,你可能得到如下的结果
2)命令模式:
git reset [-q] [<commit>] [--] <paths>...
git reset (--patch | -p) [<commit>] [--] [<paths>...]
git reset (--soft | --mixed | --hard | --merge | --keep) [-q] [<commit>]
使用示例:
删除提交的记录
---------(1.1)-----------(1.2)--------(1.3)------------(1.4)
其中HEAD指向1.4。此时想要生成patch,如果直接运行git format-patch的话,将生成1.3~1.4的patch,如果不想要1.2和1.3的提交记录,直接从实现1.1到1.4的修改,此时需要运行以下命令:
$git reset 1.1
此时,当前工作目录下位1.4版本的文件,1.2 ,1.3这两个版本的修改历史被丢弃。然后可以继续 add然后commit
git rebase:合并不同分支上的提交,形成线性提交历史
rebase,顾名思义,rebase的意思就是改变某一个分支的base。本例中,就是将mywork这个分支的base从C2改动到C4
假设你现在基于远程仓库"origin",创建一个叫"mywork"的分支。