git笔记
git reset命令三部曲(--soft, --mixed, --hard,只有mixed选项才可以有reset路径,就是可以跟文件名,比如git reset --mixed commithash filename, 如果reset命令带有文件名,那么就会跳过第一步,也就是不会移动HEAD指针了):
git reset --soft commithash 只会移动HEAD指针,并且是HEAD带着分支指针一起移动,不动暂存区和工作目录
git reset [--mixed] commithash 移动HEAD指针,并且是HEAD带着分支指针一起移动,重置暂存区
git reset --hard commithash 移动HEAD指针, 并且是HEAD带着分支指针一起移动,重置暂存区,重置工作目录
git checkout branchname和git reset --hard commithash的区别:
两者都移动HEAD指针,reset命令中HEAD还会带着分支指针一起移动
两者都会重置暂存区
两者都会重置工作目录
但是,checkou对工作目录是安全的,reset --hard会重置工作目录的
切换分支之前最好保证当前分支是干净的(刚做了提交),或者是git stash保存现场,然后再去切换分支。
git commit --amend 类似于git reset --soft commithash
git reset HEAD file 表示撤销file刚刚做的暂存,类似于git reset [--mixed] HEAD file
git checkout branch_name 表示切换到branch_name分支,切换分支时HEAD指针会指向branch_name分支的最后的提交对象。
git checkout branch_name commithash 版本穿梭
git checkout -- filename 表示撤销filename文件所作的修改。这个类似于git reset --hard commithash filename 第一,二步没有做,但是重置工作目录
git checkout branch_name filename 重置暂存区,重置工作目录(这个不常用)
---------------------------------------------------------------------------
git reset --soft commithash 只会移动HEAD指针,并且是HEAD带着分支指针一起移动,不动暂存区和工作目录
git reset [--mixed] commithash 移动HEAD指针,并且是HEAD带着分支指针一起移动,重置暂存区
git reset --hard commithash 移动HEAD指针, 并且是HEAD带着分支指针一起移动,重置暂存区,重置工作目录
git checkout branchname和git reset --hard commithash的区别:
两者都移动HEAD指针,reset命令中HEAD还会带着分支指针一起移动
两者都会重置暂存区
两者都会重置工作目录
但是,checkou对工作目录是安全的,reset --hard会重置工作目录的
切换分支之前最好保证当前分支是干净的(刚做了提交),或者是git stash保存现场,然后再去切换分支。
git commit --amend 类似于git reset --soft commithash
git reset HEAD file 表示撤销file刚刚做的暂存,类似于git reset [--mixed] HEAD file
git checkout branch_name 表示切换到branch_name分支,切换分支时HEAD指针会指向branch_name分支的最后的提交对象。
git checkout branch_name commithash 版本穿梭
git checkout -- filename 表示撤销filename文件所作的修改。这个类似于git reset --hard commithash filename 第一,二步没有做,但是重置工作目录
git checkout branch_name filename 重置暂存区,重置工作目录(这个不常用)
---------------------------------------------------------------------------
评论
发表评论