git分支相关的命令
2019-08-16 12:01:13来源:博客园 阅读 ()
Git 分支管理及结合gitlab的使用
- 说明
有关gitlab的说明及基本操作,请参考:https://blog.51cto.com/wutengfei/2090253
使用git分支的作用,我们先来说一个简单的案例吧,你们团队中有多个人在开发一项目,一同事在开发一个新的功能,需要一周时间完成,他写了其中的30%还没有写完,如果他提交了这个版本,那么团队中的其它人就不能继续开发了。但是等到他全部写完再全部提交,大家又看不到他的开发进度,也不能继续干活,这如何是好呢?
对于上面的这个问题,我们就可以用分支管理的办法来解决,一同事开发新功能他可以创建一个属于他自己的分支,其它同事暂时看不到,继续在开发分支(一般都有多个分支)上干活,他在自己的分支上干活,等他全部开发完成,再一次性的合并到开发分支上,这样我们既可知道他的开发进度,又不影响大家干活,是不是很方便呢?
在这里说明下:svn也可以实现上面所说的功能,但Git呢,无论你创建还是切换或者删除都很快哦! - 分支的本质
分支本质上其实就是一个指向某次提交的可变指针。Git 的默认分支名字为 master 。而我们是怎么知道当前处于哪个分支当中呢?答案就是在于 HEAD 这个十分特殊的指针,它专门用于指向于本地分支中的当前分支。我们可以简单理解为:commit <- branch <- HEAD (注,简单的说HEAD就是指向于本地分支中的当前分支) ,如图所示:
说明:上图中的dev指的是git的一个分支。 - 创建分支
当我们需要调试某个Bug或者尝试添加或修改程序中的某个模块,而又不能影响主分支的开发时。就可以通过创建分支来满足需求。创建分支相当于是创建一个新的分支指针指向当前所在的提交。我们在Commit3上创建dev分支:##创建dev分支前,我们先查看下当前分支情况 git branch -a \* master remotes/origin/master ##创建dev分支 git branch dev ##查看当前分支 git branch -a dev \* master remotes/origin/master
- 切换分支
从上面操作可知,虽然我们创建了一个新分支,但是 HEAD 仍然指向 master 。如果希望在创建分支的同时切换到新分支上,我们可以通过以下命令实现:git checkout dev Switched to branch 'dev' git branch -a \* dev master remotes/origin/master ##说明:git checkout命令加上-b参数表示创建并切换分支上。
git branch -a 命令可以查看所有分支,现在我们HEAD指针便指向dev分支,大家可以在上图中看到dev分支上有个*号。如下图所示:
- 分支文件提交
##我们现在在dev分支上 echo "this is a test" > shiyan.txt git add shiyan.txt git commit -m "add a file shiyan" [dev 0e7aa94] add a file shiyan 1 file changed, 1 insertion(+) git push fatal: The current branch dev has no upstream branch. To push the current branch and set the remote as upstream, use:git push --set-upstream origin dev git push --set-upstream origin dev
用流程图演示上述过程如下:
现在我们在dev分支上完成工作。##查看下dev分支上的文件 ls shiyan.txt ##切换到master分支 git checkout master ##查看master分支上的文件 ls ##并没有shiyan.txt这个文件,我们登入到gitlab上看一下,在dev分支上存在shiyan.txt这个文件。 ##原因:因为那个提交是在dev分支上,而master分支没有变化。
- 合并分支(快速合并)
现在,我们把dev分支的工作成果合并到master分支上,操作如下:##在master分支上进行操作 git checkout master git merge dev Updating 602d921..f6f8543 Fast-forward shiyan.txt | 1 + 1 files changed, 1 insertion(+) create mode 100644 shiyan.txt ##git merge 命令用于合并指定分支到当前分支。合并后,再查看shiyan.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。 ls shiyan.txt ##说明: (1)上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。当然,也不是每次合并都能Fast-forward,我们后面会将其他方式的合并。合并完成后,就可以放心地删除dev分支了。 (2)在gitlab上可以看到master分支里已经存在shiyan.txt。
- 删除分支
##在master分支上进行操作 git checkout master git branch -d dev Deleted branch dev (was f6f8543). ##查看当前分支情况 git branch -a \* master remotes/origin/dev remotes/origin/master
- 命令总结
##查看分支 git branch -a ##创建分支 git branch name ##切换分支 git checkout name ##创建并切换 git checkout -b name ##合并某分支到当前分支 git merge name ##删除分支 git branch -d name
原文链接:https://www.cnblogs.com/qianyuhebaobao/p/11309559.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 用 Git 和 Github 提高效率的 10 个技巧! 2020-06-10
- 面试的时候按照这个套路回答 Java GC 的相关问题一定能过 2020-06-08
- 总结一些 Java 相关笔试、面试题,万一用上了呢 (=_=) -- 基 2020-06-08
- 前端 技术之 Git&GitHub 2020-05-29
- Git 高级用法,喜欢就拿去用! 2020-05-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash