git中关于分支和stash的理解
各位看官好,最近我学习了stash的用法,但是产生了一个问题,理论上来说,stash和分支都有保存代码的功能,那么两者的区别是什么呢?
一、两者之间的区别与联系
二、stash命令的使用
三、分支的使用
1、两者之间的区别与联系
首先我们要明白,git是一款公司用于管理代码的工具,因此,我们在公司的时候必须要每个人开发整个产品的整个产品中的一个小功能。如果我们假设没有分支,那么我们就必须要在源代码上改动,这样一旦出现问题,很有可能导致整个代码编译无法通过,这在公司当中是绝对不允许的。
但是如果有了分支就不同了,我们可以在整个源码中创建一个属于自己的分支。这样即使调试过程中出现问题,我们也不会影响主分支。这就是分支的意义。
那么stash又有什么用途呢?如果我们在开发一个功能中,突然你的领导告诉你,去解决一个bug或者去测试源码中的一个功能。那么此时你需要做什么呢?你是不是应该重新开一个分支或者切换回主分支呢?但是不好意思,git中如果想要切换分支必须保证该分支的工作区和暂存区是干净的。那么这个时候你有两个选择,第一,想办法把你刚才写的代码保存一下。第二。直接把当前代码提交到本地仓库中。那么在软件行业中原则上如果没有写完的功能是不能提交到仓库中的,因此我们不建议使用第二种做法。因此我们就需要使用第一种方法。保存刚刚写好的代码。那么此时我们就需要用到stash命令。
总结一下,如果我们要在源码上开发一个新功能,那么我们就需要使用分支的功能。如果在开发新功能的工程中需要切换分支,那么我们就需要使用stash命令保存代码。
2、stash命令的使用
诚如我之前所说,stash命令的主要作用就是保存代码,所以他至少包含三个功能。1、保存。2、查看保存的历史记录。3、将保存的内容释放出来。所以这个命令也可以分成三个部分,即为:
git stash save "comment" 保存数据
git stash list 查找保存的历史记录
git stash pop 将保存的内容释放出来
个人感觉这三个命令来说就足够了。
3、关于分支命令的使用
分支的话命令有很多,不过我觉得一般来说我觉得创建,切换,查询,合并就可以了。
首先说创建:git branch +分支名称
切换:git checkout + 分支名称
查询:git branch -vv
合并:merge,rebase,cherry-pick等等。关于三者的区别,请参考我的博客《关于git rebase,git merge,git merge --no-ff的区别》
另外我补充一下,因为git本身是一个工具,所以它的自由度是非常大的,不一定要按照上述我所描述的方式使用,比如我身边的小伙伴就不喜欢用分支,喜欢直接再拷贝一份代码做测试。所以只要习惯就好。
总结一下,今天主要写了关于分支和stash的使用场景的说明。另外还简单说明了stash和分支的使用命令。
posted on 2020-03-26 15:57 碧海无波,细水长流 阅读(1362) 评论(0) 编辑 收藏 举报