一、背景

之前一直都是在使用svn进行代码版本管理,新公司使用的git,虽说之前在github上使用过几次,但使用场景太过简单,与公司多人,多分支的开发场景相比,就算没有使用过,因此注定要碰壁!虽然git 的使用方法,网上一搜一大推,但是作为新手,最可悲的:所有的使用方法都摆在那里,但是你就不知道,也不敢随便使用!毕竟是在实战。现在总结下来,希望可以帮助到和我一样的新手,不要像我一样因为一个小小的使用工具,信心严重受到打击!这里要感谢公司的同事——志凌,算是我git使用的启蒙指导老师。

本篇文章主要介绍git管理项目的一个简单,基本的使用流程,老手请忽略!但对新手来说应该是进入公司必备的操作流程,还是比较重要的。良好的开端是成功的一半。初次的使用,一定程度上会决定着你对这款工具的印象和深入学习的欲望,也是刚进公司时个人信心提升的关键时刻,假如你能够顺利上手,就能够迅速进入工作状态,但是如果无从下手,那就是能力不强的表现了,后果很可能就是恶性循环。看到这是不是感觉有必要收藏一下,哈哈!

二、git 和svn

两者都是优秀的版本管理工具。

git是分布式:服务器和每个开发人员都拥有一个本地的代码管理仓库,进行本地的代码管理;

svn集中式:只有在服务器上有一个代码管理仓库;

最后一句:我感觉git 比svn好用!,有点规模的公司都在用(我接触过的)!

其它的具体细节,可以自己去谷歌!这里不是我讲的重点。

三、git的使用(以当前所在公司为例讲解)

1、概括

使用git进行项目管理和开发,一般情况下,会在服务端(origin)创建一个仓库进行代码的管理,仓库会维护三大块分支。如下图

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分支上。此时很可能会遇到文件冲突的问题,需要到冲突所在的文件下手动修改,修改好后,执行 $ git add . 执行 $ git rebase –continue,此时应该可以成功合并。

$ git push origin head:refs/for/dev

此命令将本地local分支上修改的代码提交到服务器上。

四、总结

以上,就是在公司实际开发中,开发人员所必经的一套简单基础完整的git工作流程。当然,这些只是在一切正常的情况下,git的强大之处远不止这些!还有很多复杂的应用场景,我会根据自己实际的工作经验一一讲解。最后,如有错误之处还请批评指正,谢谢!!

一个半路出家自学程序员的经验分享

git-新手入职必备操作流程相关推荐

  1. 入职必备两小时入门SVN(二)

    入职必备两小时入门SVN(二) 1.SVN使用 1.创建版本库 打开SVN服务端(开始菜单) 右击Repository.点击Create Repository,出现下面画面,选择默认就好 2.导入项目 ...

  2. 入职必备两小时入门SVN(一)

    入职必备两小时入门SVN(一) 1.简介 SVN的全称是Subversion,即版本控制系统.它是最流行的一个开放源代码的版本控制系统.作为一个开源的版本控制系统,Subversion管理着随时间改变 ...

  3. 初级前端程序员就职指南-入职必备配置清单git,vscode...

    开发环境的搭建 1. 本篇文章概述: ◇ 新电脑如何配置开发环境 ◇ 新电脑应该安装那些工具 ◇ chrome 的安装以及设置小技巧 ◇ Vscode 相关配置 ◇ Git 相关配置 ◇ Node 和 ...

  4. Git 基本操作(入职亲体验)

    GitHub工具多用在多人协作开发,多团队开发的开发模式中.入职前只是稍有涉略,基本命令尚不熟练,因为没在实际过程中遇到过.尤其是一些突发状况.这边使用GIT较多,操作也较多,中间确实遇到一些问题,才 ...

  5. IT新手入职的一些注意事项

    大家好,作为一名IT人士刚入职的新手,有哪些方面需要注意呢,下面就是我总结的一些心得: 1.踏实做事,只要在自己的能力范围之内,能多做事情,就多去做,给别人留下一个勤奋的好印象是非常重要的: 2.不懂 ...

  6. git 新入职员工流程

    新入职员工工作流程 1.新进公司,先关联公司的代码仓库 git clone 仓库地址我们可以和远程建立链接 将本地仓库和线上仓库建立关联:git remote add origin [线上仓库的SSH ...

  7. Java开发新手入职第一天

    入职第一天,来到公司大门口,门卫不给进,让入职部门派人来领进去.无奈只能打电话,等待一段时间后,终于有个小姐姐来领人了.在小姐姐的带领下来到项目组的工作室,先给安排了电脑,然后安排旁边的小哥哥带一下我 ...

  8. 【第93期】回复@齐谐,新手入职文案策划的建议

    我是酱油,这是第93期文章 后台网友@齐谐留言: 你好,我是今年准备校招的小白.想入文案策划的职位,不知道可爱又迷人的大佬有没有什么建议.比如简历,面试之类的(皱眉表情). 看到这留言后,我的第一反应 ...

  9. 第5期:大学生入职必备技能之二

    大家好,我是老王随聊,今天和大家讨论的话题--大学生入职前需要做哪些准备呢? 通过这段时间和群里同学们交流,发现很多人对于自己的职业目标和方向不是很清楚,简单说,就是迷茫.那大学生可以提前为实现职业目 ...

最新文章

  1. html页面加空的行,html-插入高度较小的空白表行
  2. Oracle 服务器 进程中的 LOCAL=NO 和 LOCAL=YES
  3. 排列和组合、以及数列(五)
  4. 使用PyQt来编写第一个Python GUI程序
  5. Windows 系统 重装为Linux 记录
  6. 祝贺自己的软件《万能数据库查询分析器》在中关村在线下载量超过10万次
  7. 01 LeNet-5论文笔记-Gradient-Based Learning Applied to Document Recognition
  8. 微信公众账号api开发
  9. 取向性完全不同 骐达英朗底盘对比解析
  10. linux中怎么连接wifi密码,Linux终端中连接WiFi的方法
  11. 【WAF技巧拓展】————4、web应用防火墙逃逸技术(一)
  12. 怎么给固定资产安装标签
  13. 浅谈一下刚学的Java集合
  14. Python实现飞机大战(搞怪)游戏!这是你没见过的全新版本!
  15. 【学习率】梯度下降学习率的设定策略
  16. 装修工程施工质量控制工作方法及措施
  17. bzoj4521【CQOI2016】手机号码
  18. Eclipse崩溃后无法启动的问题解决
  19. 创建工作站vmware workstation时,提示before you can run vmware several modules must be compiled
  20. 虚幻引擎UE4.25版本使用Android打包出错提示:ERROR: cmd.exe failed with args /c 和 :app:assembleDebug的解决方法

热门文章

  1. D. Ceil Divisions
  2. vue实现计算商品sku笛卡尔积(干活)
  3. Spring AOP 切点 Pointcut 表达式介绍与使用
  4. Qt/C++编写安防视频监控系统48-视频参数
  5. 中山大学东校区小米路由器刷H3C
  6. 有多少人用过连连支付啊?
  7. EXCEL计算不重复项
  8. linux pcie基本操作
  9. html捉虫游戏,小班体育游戏《小鸡捉虫》
  10. 计算A/B Test需要的样本量