git容易混淆的几个指令reset rebase revert reflog

182 阅读1分钟
1. reset: Reset current HEAD to the specified state
	
    用于回退版本,可以指定退回某一次提交的版本
    修改HEAD的位置,即HEAD向后移,将HEAD指向的位置改变为之前存在的某个版本
     --soft 保留 工作区和暂存区的内容
     --hard 彻底丢掉当前版本的修改
     --mixed 默认值,只保留暂存区
     
2. rebase: Reapply commits on top of another base tip
	
    命令在另一个分支基础之上重新应用,用于把一个分支的修改合并到当前分支
    
3. revert: Revert some existing commits
	
    HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
    
4. reflog: Manage reflog information

    可以查看所有操作记录,包括已删除记录,git log不能查看已删除记录
    
5. restore: Restore working tree files

    git restore --staged 文件名 用于恢复【已执行git add的文件】,即从暂存区放回到本地工作区