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