git分支管理介绍和stash命令
git的默认分支就是master。你所做的commit会在master分支上自动移动。在多次提交操作之后,master分支指向最后那个commit object(提交对象链),master跟其他分支没有区别,但是每个仓库几乎都有一个master,是因为 git init 默认创建他。
1 分支创建
通过git branch 来查看和创建分支
git branch 创建分支
git branch dev 创建一个叫做dev的分支
git checkout dev 切换到dev分支
git checkout -b dev2 创建并切换到dev2分支
在别的分支创建文件并提交 在别的分支是看不见的
2 分支删除
不能删除自己所在的分支,我们可以切换到master删除一个合并后的或者没有发生变化的分支
如果一个分支发生变化同时合并不能删除 可以强制删除
git branch -D dev
3 分支合并
分支合并命令使用 git merge dev 合并 dev到当前分支
合并前需要先增加到暂存区 在提交值版本库
分支冲突
在master中创建b.txt文件并增加只保存区且进行提交 然后创建dev分支
修改b.txt文件中的内容
切换到dev分支中然后修改b.txt 文件和master中修改不一样
在切回到master分支中 进行合并会发现有合并冲突
<<<<<<<<<<<HEAD是当前指向的分支所修改
>>>>>>>>>>dev2是dev2分支修改
我们需要手工合并。修改后报了master的内容
我们可以通过图形来查看冲突的提交日志。
git log --graph
git stash
在master分支中修改a.txt文件
这是突然有需求需要切回到dev中
会发现提示错误 git建议我们先提交或者stash修改的内容在切换
执行git stash 会把修改的内容做保存然后我们就可以切换到其他分支
然后我们回到master中 使用git stash list命令可以查看保存的记录
如果想要将stash过的内容恢复出来 通过pop取出最近的恢复并删除stash中的修改
分支细节
master:git默认主分支(这里不作操作)。
stable:稳定分支,替代master,主要用来版本发布。
develop:日常开发分支,该分支正常保存了开发的最新代码。
feature:具体的功能开发分支,只与 develop 分支交互。
release:release 分支可以认为是 stable分支的未测试版。比如说某一期的功能全部开发完成,那么就将 develop 分支合并到 release分支,测试没有问题并且到了发布日期就合并到 stable分支,进行发布。
bugfix:线上 bug 修复分支。