这篇文章简单介绍了git,着重介绍了分支概念和idea中git的简单使用
提问题
- git是啥?
- git的分支概念
- idea中git的使用
- git仓库
- git命令
- git安装
- 参考文章
git是个啥?
分布式版本管理工具。
git
的前生今世:git是由Linus发明的,基于C语言的;2005年左右,事情的大概就是,以前有个公司开发了开源的分布式版本控制系统 BitKeeper,供Linux 开源社区使用,但是由于某些原因不想开源了,反悔了,而这个时候大家都习惯了使用这种开源的分布式系统,还是想白嫖免费的,所以就有个大佬直接写了一个开源的,这就是
git
。
我的理解:
git
是管理我们代码的一个工具,代码管理不是技术难题,而是一个管理的难题,git解决了团队开发效率问题以及开发版本的管理。技术方面主要是去中心化的分布式系统管理代码仓库。
分支的概念
分支名称
开局一张图,这张图乍一看全是英文,很烦看不懂,但是只要明白其逻辑就很简单的。想看原版请戳:成功的 Git 分支模型
- 具有无限生命周期的主要分支
master
和develop
分支 fearure
是开发新功能使用的分支release
是预发布版本- 预发布版本测试后,打上
Tag
标签,一般是版本号,进行发布 - 发布完成后,如果有
bug
,紧急迁出hotfixes
进行热修复,完成后发布新版本master
模型与实际逻辑结构
在模型上这几个分支可能是由先后顺序,或者说继承顺序,但是在具体创建上都是逻辑上都是相同的,是处于同一层的分支,都是普通的分支,只是因为我们为了方便管理,提出了这个模型,给不同的分支起了不同的名字,赋予它们不同的职能。
具体流程
比如说我们现在要接手了一个10个亿的小项目:亿点点平台。功能开发阶段
feature
、预发布阶段
release
,发布阶段
master
- 首先我们先创建
master
,然后从master
迁出develop
,然后开发develop
分支,开发了一段时间后,因为程序猿很多,需要根据功能开发:功能一:亿;功能二:点点。 - 于是我们从
develop
迁出新的分支feature/yi
和feature/dianDian
,分别进行开发,开发完成后,再合并到develop
中 - 开发的功能差不多了,准备上线,
develop
迁出新的分支release/yiDianDian-1.0
- 测试的差不多了,正式上线,将
release/yiDianDian-1.0
合并到master
分支,并打上标签,一般是版本号,yiDianDian-1.0
正式发布 - 紧急情况,亿点点转账太慢,从
master
中迁出分支进行紧急修复,去掉sleep(3000)
,然后再合并大master
中去,yiDianDian-1.1
发布
idea中git的使用
本着能用图形化界面就不输命令行的优良习惯,我在
idea
实际实践了具体一下的操作。
Local
是本地的分支,
Remote
是远程的分支,一般先从远程分支拉到本地,右上角的箭头是更新一下
git
远程的git分支名
迁出分支
从
develop
迁出新分支,然后命名即可
切换分支
commit
后切换即可
切换分支前若未
commit
,要么舍弃切换前的分支,要么只能合并到要切换的目标分支,要么放弃切换分支
feature分支命名
在实际实践中遇到了一个问题,创建了
feature
分支后,就不能创建
feature/learn
,所以一般不创建
feature
分支,直接创建具体的功能分支
feature/learn
。
合并
例如将
develop
合并到
master
中去,我们先在
develop
分支
push
代码,然后切换到
master
分支(见图片的右下角),然后选中
develop
,将
develop
的代码合并到
master
分支中去。
提交前先三连
update
(拉一下远程仓库到本地),
commit
,
push
。一般在右上角
怎么去这个右下角水印啊,好烦
本地回滚
将本地还未commit的代码删掉,回滚到分支的状态
远程分支回滚
回滚到分支的上几个版本
选soft:本地会回退到上一版本,但会保留以前提交的修改,呈未commit状态。再一次push会覆盖上一次提交,达到撤回push但本地未回滚的效果。
选Hard,Hard:文件将恢复为选定提交的状态。警告:任何本地更改都将丢失。
然后提交即可
如何打tag
git仓库
这张图是盗的菜鸟的,Git 教程 | 菜鸟教程 (runoob.com)
git命令
本着能用图形化界面就不输命令行的优良习惯,还是放一下吧,可能会有问题,因为确实不熟。
按开发阶段
- 迁出
feature
分支,并进行功能开发(开发阶段)git checkout devlopgit checkout -b feature/testgit push origin feature/test
- 功开发完成之后,合并
feature
到develop
(开发阶段)git merge --no-ff feature/testgit push origin developgit branch -d feature/testgit push --delete origin feature/test
- 功能开发完成后按照规划的版本号从
develop
创建release
分支(预发布阶段)git checkout devlopgit checkout -b release/1.0.0git push origin release/1.0.0
- 测试完成之后,发布
release
版本到master
(发布阶段)git checkout mastergit merge --no-ff release/1.0.0git pushgit tag -a v1.0.0git push origin --tags
- 同步代码到
develop
,合并release
到develop
(发布阶段)git checkout developgit merge --no--ff release/1.0.0git pushgit branch -d release/1.0.0git push --delete origin release/1.0.0
常用命令
git clone:下载代码并创建本地仓库
git add:添加文件到git本地仓库版本
git commit:添加一个提交本地仓库
git push:推送代码到远程分支
git pull:拉取远程代码
git status:查看本地代码改动/状态
git branch:查看分支、或分支操作
git checkout:切换分支或创建分支
git安装
Git安装设置 - Git教程 (yiibai.com)
参考文章
成功的 Git 分支模型 看不懂的话直接全文翻译即可
Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)
Git教程 (yiibai.com)
Git 教程 | 菜鸟教程 (runoob.com)
Git教程 (yiibai.com)
Git 教程 | 菜鸟教程 (runoob.com)
版权归原作者 Mister-Bugs 所有, 如有侵权,请联系我们删除。