首页 后端开发 php教程 git-新手入职必备操作流程

git-新手入职必备操作流程

Dec 05, 2016 am 11:46 AM
git

一、背景 
之前一直都是在使用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的强大之处远不止这些!还有很多复杂的应用场景,我会根据自己实际的工作经验一一讲解。最后,如有错误之处还请批评指正,谢谢!!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Go语言中用于浮点数运算的库有哪些? Go语言中用于浮点数运算的库有哪些? Apr 02, 2025 pm 02:06 PM

Go语言中用于浮点数运算的库介绍在Go语言(也称为Golang)中,进行浮点数的加减乘除运算时,如何确保精度是�...

Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Apr 04, 2025 pm 11:54 PM

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

h5项目怎么运行 h5项目怎么运行 Apr 06, 2025 pm 12:21 PM

运行 H5 项目需要以下步骤:安装 Web 服务器、Node.js、开发工具等必要工具。搭建开发环境,创建项目文件夹、初始化项目、编写代码。启动开发服务器,使用命令行运行命令。在浏览器中预览项目,输入开发服务器 URL。发布项目,优化代码、部署项目、设置 Web 服务器配置。

Go语言中哪些库是由大公司开发或知名的开源项目提供的? Go语言中哪些库是由大公司开发或知名的开源项目提供的? Apr 02, 2025 pm 04:12 PM

Go语言中哪些库是大公司开发或知名开源项目?在使用Go语言进行编程时,开发者常常会遇到一些常见的需求,�...

Beego ORM中如何指定模型关联的数据库? Beego ORM中如何指定模型关联的数据库? Apr 02, 2025 pm 03:54 PM

在BeegoORM框架下,如何指定模型关联的数据库?许多Beego项目需要同时操作多个数据库。当使用Beego...

H5页面制作是否需要持续维护 H5页面制作是否需要持续维护 Apr 05, 2025 pm 11:27 PM

H5页面需要持续维护,这是因为代码漏洞、浏览器兼容性、性能优化、安全更新和用户体验提升等因素。有效维护的方法包括建立完善的测试体系、使用版本控制工具、定期监控页面性能、收集用户反馈和制定维护计划。

在Go语言中使用Redis Stream实现消息队列时,如何解决user_id类型转换问题? 在Go语言中使用Redis Stream实现消息队列时,如何解决user_id类型转换问题? Apr 02, 2025 pm 04:54 PM

Go语言中使用RedisStream实现消息队列时类型转换问题在使用Go语言与Redis...

Typecho路由匹配冲突:为什么我的/test/tag/你好/10086匹配到了TestTagIndex而不是TestTagPage? Typecho路由匹配冲突:为什么我的/test/tag/你好/10086匹配到了TestTagIndex而不是TestTagPage? Apr 01, 2025 am 09:03 AM

Typecho路由匹配规则解析与问题排查本文将针对Typecho插件路由注册与实际匹配结果不一致的问题进行分析和解答�...

See all articles