一、背景
之前一直都是在使用svn进行代码版本管理,新公司使用的git,虽说之前在github上使用过几次,但使用场景太过简单,与公司多人,多分支的开发场景相比,就算没有使用过,因此注定要碰壁!虽然git 的使用方法,网上一搜一大推,但是作为新手,最可悲的:所有的使用方法都摆在那里,但是你就不知道,也不敢随便使用!毕竟是在实战。现在总结下来,希望可以帮助到和我一样的新手,不要像我一样因为一个小小的使用工具,信心严重受到打击!这里要感谢公司的同事——志凌,算是我git使用的启蒙指导老师。
本篇文章主要介绍git管理项目的一个简单,基本的使用流程,老手请忽略!但对新手来说应该是进入公司必备的操作流程,还是比较重要的。良好的开端是成功的一半。初次的使用,一定程度上会决定着你对这款工具的印象和深入学习的欲望,也是刚进公司时个人信心提升的关键时刻,假如你能够顺利上手,就能够迅速进入工作状态,但是如果无从下手,那就是能力不强的表现了,后果很可能就是恶性循环。看到这是不是感觉有必要收藏一下,哈哈!
二、git 和svn
两者都是优秀的版本管理工具。
git是分布式:服务器和每个开发人员都拥有一个本地的代码管理仓库,进行本地的代码管理;
svn集中式:只有在服务器上有一个代码管理仓库;
最后一句:我感觉git 比svn好用!,有点规模的公司都在用(我接触过的)!
其它的具体细节,可以自己去谷歌!这里不是我讲的重点。
三、git的使用(以当前所在公司为例讲解)
1、概括
使用git进行项目管理和开发,一般情况下,会在服务端(origin)创建一个仓库进行代码的管理,仓库会维护三大块分支。如下图
1
master分支:只有一个,作为主分支
dev分支:项目当前版本的开发分支,程序员会基于此分支 来切 本地分支,进行开发。
其它版本的分支:项目每个版本,在开发测试完成后,最终的稳定代码。每当一个版本的开发测试完成后,都会将当前版本的稳定代码合并到master分支。
假如在开发当前版本时,发现dev7.0.0版本线上出现了bug。此时,就可以基于dev7.0.0分支,进行修复,这是维护其它版本分支最大的好处。
2、使用(前提是安装了git软件,并且配置了ssh)
配置ssh的好处就是,本地向服务器push代码时就不用总是填写用户名和密码了!
插一个小曲,本人一直以为AndroidStudio集成了git,就不用下载git了。这是完全错误的!必须下载,因为AndroidStudio集成的。只不过是git的可视化实用工具。请大家原谅我的无知!!嘿嘿。
(1)、拉取代码
提示:安装好git后,定位到存放本地项目代码的很目录下,鼠标右击,点击“git Bash”,即可弹出命令框!!
$ git clone <版本库的网址>
该命令会在本地生成一个目录,与origin的版本库同名,目录下面包含 .git文件(默认是隐藏的),和服务器上master分支的代码(也有可能没有,因为master分支上一般没有权限获取);要注意此时是在master分支上的,可以使用 $ git branch 命令查看! 但是我们是要切dev分支上的代码!
$ git checkout dev
该命令是将本地版本库(local)切换到dev分支(前提 是origin上已存在dev分支),建立local与origin对应分支.此分支可以直接与origin对应分支进行通信。如执行代码的上传(push)和更新(pull)操作. ps(也可以使用 $ git checkout -b dev origin/dev命令代替)
$ git pull
该命令将origin/dev分支上的代码,pull或更新到local/dev 分支上。如果项目有依赖工程,使用$ git clone <版本库的网址>命令下载到本地
$ git checkout – b local
该命令,基于dev分支,创建新分支 local,并切换到 local分支,一定要创建新分支进行开发,决不能基于本地dev分支开发,最后就可以将代码导入开发工具了!此时执行 $ git branch 命令应该可以看到 dev 和local 两个分支。
(2)、代码提交
思考:如何将代码提交到服务器?
下载
分析:如果一切正常,我们目前应该是在基于本地dev分支基础上创建的local分支上,前面已经说过,本地只有dev分支才能与服务器dev分支进行通信,执行代码的pull和push操作。那么我们要做的就是 将 local分支上的代码,提交到本地dev分支上,之后切换到dev分支,执行push命令,就ok了!!
提示:定位到项目的根目录(带.git的文件夹下),鼠标右击,点击“git Bash”,弹出命令框!!
$ git status
此命令可以查看当前分支上有哪些文件改动了,建议首先执行一下,查看改动的文件,避免提交不需要提交的文件。如果想恢复改动的文件,执行 $ git checkout — 文件路径/文件名 。
$git add .
改命令将分支上改动的文件(即工作区改动文件),添加到暂存区
$ git commit -m “修改说明”
将暂存区的文件提交到版本库(我的理解这个版本库在这里应该指的是本地dev分支)
$ git checkout dev
切换到本地dev分支
$ git pull
该命令将origin/dev分支上的代码,更新到local/dev 分支上。
$ git checkout local
该命令切换到本地local分支
$ git rebase dev
该命令将 dev分支上的最新代码,合并到 本地local分支上。此时很可能会遇到文件冲突的问题,需要到冲突所在的文件下手动修改,修改好后,执行 gitadd.执行 git rebase –continue,此时应该可以成功合并。
$ git push origin head:refs/for/dev
此命令将本地local分支上修改的代码提交到服务器上。
四、总结
以上,就是在公司实际开发中,开发人员所必经的一套简单基础完整的git工作流程。当然,这些只是在一切正常的情况下,git的强大之处远不止这些!还有很多复杂的应用场景,我会根据自己实际的工作经验一一讲解。最后,如有错误之处还请批评指正,谢谢!!
已抢186754个
抢已抢67341个
抢已抢353255个
抢已抢667630个
抢已抢122779个
抢已抢24213个
抢