git分支相关的常用命令及使用场景

 1、创建分支并且切换到分支(两者等价)

git checkout -b dev # 创建分支
git switch -c dev # 创建分支

 2、查看当前分支

git branch

3、切换分支(两者等价)

git checkout dev 
git switch dev 

 4、合并分支

git merge dev # 系统会自动使用fast forward方法来合并分支,删除分支迭代痕迹
git merge --no-ff -m "XXXXXXXXX" dev # 不适用fast forward方法,保留分支迭代痕迹

 5、删除分支

git branch -d dev

6、查看分支历史信息

git log --graph --pretty=oneline --abbrev-commit # 更加简结

7、存储现场工作,转而去修复bug

 git stash

8、查看存储现场,恢复工作现场

git stash list  # 查看

git stash apply # 恢复
git stash drop  # 删除

git stash pop   # 恢复并删除

这个比较有意思,细说一下

发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交。这时就可以考虑git stash。
使用git的时候,我们往往使用分支(branch)解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用git stash就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修Bug,等到修完Bug,提交到服务器上后,再使用git stash apply将以前一半的工作应用回来。
经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。
————————————————
版权声明:本文为CSDN博主「琦彦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fly910905/article/details/88711075

我总结为,不想使用git add 和git commit来进行工作的阶段性暂存(因为没达到阶段性要求或者其造成注释污染,不想动不动就暂存)或者有其他事情需要处理,这时,git stash就很有使用的必要了。

小结一下stash的使用流程

# 1、储存当前分支现场
git stash # 建立储藏区,将当前分支工作区中的所有文件统统存储
git status # 储藏区变干净

# 2、切换到主分支,修复bug并提交
git switch master # 切换分支修改bug
git switch -b issue-1024 # 创建bug修复分支
。。。。。。# 修改中
git add readme.txt # 修复完成,放置暂存区
git commit -m "fix the bug" # 注释并提交 

# 3、切换到主分支,合并问题分支到主分支
git switch master # 切换到主分支
git merge --no-ff -m "merge the fixed bug 1024" issue-1024 # 合并分支
git branch -d issue-1024 # bug修复后删除分支

# 4、恢复现场继续干活
git switch dev # 切换分支,继续干活
git stash list # 查看储藏区,需要恢复哪一个区域
git stash pop # 恢复储藏区

但是此种方法在bug需要大面积修改的情况下会与dev分支中工作产生冲突,工作量会很大。如果有其他思路解决请评论或@我

9、开发新需求的操作流程

git switch -c newfeature007 # 创建新特性分支,在此上面完成新特性开发

git add readme.txt
git commit -m "add a feature"
git switch dev # 返回开发流程,准备合并

# 如需继续合并
git merge -m "new feature was added" newfeature007 

# 如需删除,一般是强行彻底删除
git branch -D newfeature007 

10、添加标签

git tag V1.0 # 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
git tag -a V1.0 -m "this is a tag" # 可以指定标签信息;
git tag # 可以查看所有标签。
git tag -d V1.0 # 删除标签
git push origin V1.0 # push到远端
git push origin --tags # 全部推送到远程 

#删除远程标签
git tag -d v0.9 # 先删除本地标签
git push origin :refs/tags/v0.9 # 再删除远程标签

https://blog.csdn.net/hellokandy/article/details/84545461
https://www.liaoxuefeng.com/wiki/896043488029600/902335212905824

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值