Git的branch checkout reset命令

git branch                                      #查看所有分支

git branch        分支名                   #创建分支

git branch        -d        分支名        #删除分支,如果分支存在未merge的提交,删除失败

git branch        -D        分支名        #强制删除分支,即使存在未merge的提交

git branch -r        #查看远程仓库分支、

git branch -a        #查看所有分支,本地 和 远程 仓库

git branch -vv        #本地分支与远程分支的对应关系

git branch -m oldname newname        #分支重命名

git branch --set-upstream-to=origin/remote_branch  your_branch        #本地分支与远程分支关联

切换分支 :

git checkout       分支名        #切换分支

git checkout  -b  分支名        #创建并切换分支

git switch        分支名        #切换分支

git switch   -c  分支名        #创建并切换分支

撤销操作:

 git checkout  --  filename        #丢弃工作区修改modify,恢复到staged状态(--须留空格)

git reset  HEAD filename        #unstaged,撤销暂存

git reset  commitID                 #重置版本,效果上可以撤销错误的commit

git checkout commitID 和 git reset commitID 区别:

 git reset commitID: HEAD->branchname回退到指定版本

git checkout commitID:将HEAD指针指向游离分支!!!

 要保存游离分支(匿名临时)上的commit:

1、从游离分支上创建一个新分支newBranch,git branch name,git switch name

2、将新分支merge到开发分支dev上。

3、git checkout dev 回到原开发分支,游离分支消失。

 关于git reset --soft --mixed --hard commitI的区别:

 git reset --soft commitID:

跳转前后版本间的commit会回退到staged状态。

但是跳转前版本的【工作区】和【暂存区】的内容依然保持不变。

 git reset --mixed commitID:

跳转前后版本间的commit会回退到unstaged状态,放到工作区。

跳转前版本的【暂存区】staged的变成unstaged。

跳转前版本的【工作区】unstaged依然不变。

git reset --hard commitID:

跳转前后版本间的commit不再保留,直接切换指针。

切换前版本的【工作区】、【暂存区】内容丢失!!!!

总结:

--hard 模式来回切换会丢失【工作区和暂存区】内容。

--soft 模式切换到以前的版本,版本间commit变成staged,切换前版本的【工作区和暂存区】都会保留,不受影响。

--mixed 模式切换到以前的版本,版本间commit变成unstaged,切换前版本的【暂存区】变为unstaged工作区。

注意:

三种模式下,在保证当前目录干净的条件下,再进行相同模式的切换,不会丢失数据。

切换的模式一定要相同!!!

参考博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值