在commit后,如果想修改一般有reset和revert两种方法 其中reset适用于未push的情况,可以直接回溯到特定的节点 而revert相当于将目标的节点放到末尾进行了一次提交,适用于已push的情况。
代码语言:javascript复制git reset target
# target可以为节点相对指针 如HEAD~1、也可以为节点commit的ID。
同时,reset不仅可以指向前面的节点也可以指向到后面的节点,如不小心reset到了C1,可以使用git reflog
查看log,然后使用 git reset C3
跳转回C3
reset后可以加参数 如:--mixed --soft --hard
param | effect |
---|---|
mixed(默认) | 会保留提交的源码改动,只是将索引信息回退到了某一个版本,如果还需要继续提交,再次执行git add和git commit |
soft | 操作是软重置,只撤销了git commit操作,保留了git add操作 |
hard | 工作区改变 返回到未提交也未add的时候,是具有破坏性,是很危险的操作,它很容易导致数据丢失 |