Git实战:在IDEA中使用Git管理项目

2021年3月8日16:34:40 发表评论 992 次浏览

本文概述

前言

我们在前几篇文章中学了如何使用Git,其中涉及的Git原理和命令已经够我们开发项目使用了。在实际开发中使用Git,你首先需要有一个Git的规范工作流,这个工作流你可以自己或和团队约定,或你自己比较喜欢或常用的,或互联网中流行的工作流都行,主要是尽量规范,方便你慢慢习惯使用Git开发

刚好最近要开发一个小工具,今天设计好了,刚好尝试使用Git管理新项目。所以我也是首次使用Git管理项目啦——也写了不少代码了的,失礼失礼!所以这里我也是展示一下我个人的Git操作,你可以参考一下。

Git工作流的选择和规定

这里我是使用IDEA创建的Maven项目,你可以先新建一个项目——但新建好先别动,我使用的Git工作流是:

  • master分支保持不动,长期分支,它的代码都是稳定的,dev分支上的代码若有较为稳定的运行,才把dev合并到master分支。
  • dev分支是开发分支,长期分支,我们主要在该分支上开发。
  • 功能性开发从dev新建分支,功能分支统一使用fe-<function>命名,其中<function>表示一个子模块的功能(或者更为详细的功能也是可以的),比如HTTP访问,可以创建fe-http分支。实现并测试好后,可以删除。
  • 错误问题修复分支,使用issue#<problem_name>命名,这些错误分支可以在master、dev、功能分支中存在,修复完可以删除。

初始化Git项目和配置.gitignore

接着我们需要配置.gitignore文件,该文件用来告诉Git排除一些文件的管理。配置内容可以到https://github.com/github/gitignore中找到,由于我这个项目是Java项目和Maven项目,我们可以参考上面给出的配置,这里先使用上面给出的全部配置。

在配置之前,我们需要将当前Maven项目初始化为Git项目,你可以在命令行(Terminal)中使用git init命令,或者使用IDEA顶部菜单中VCS的第一项:

IDEA初始化项目为Git仓库

然后在target文件夹上右键,找到Git,将该文件夹添加到.gitignore中,一路下去,IDEA会提示你是否创建该文件的,创建好后,将上面提到的Java和Maven的相关配置添加到该文件(先添加,后面不需要再删除),然后你可以自己选择忽略的其它文件的,这里我是不需要.idea目录和project.iml文件的,只需右键就可以添加进去了:

IDEA 配置.gitignore文件

接着,我们可以在终端中使用git status命令查看当前项目的状态,实际在开发中,你可以同时使用IDEA提供的UI操作或使用命令行,相差不大:

Git查看当前项目状态

可以看到我们是新建了一个.gitignore文件,然后是pom.xml配置文件和src源码文件夹。我们可以将这些add到暂存区并提交为app的初始化版本,这样做是为了得到一个master分支起点,如果你不创建第一个提交点,而直接创建dev分支——我试了一下,这好像不行,这样项目只有dev分支而没有master分支了。

最后,我们可以点击IDEA右上角的绿色的勾勾,可以直接提交,然后你就会看到IDEA叫你选择提交的文件和输入的信息,还有一些选项,例如Amend选项提交而不创建新提交,Commit按钮是正常的提交,还有个Commit and Push,应该是提交并推送到远程仓库的。

IDEA Git创建第一个提交

点击Commit即可提交,新项目可能会提示你改一下POM文件中的URL配置,修改好再次点击Commit即可。

然后你可以在终端中使用Git log命令查看是否已正常提交,或者更友好的方式是使用IDEA顶部菜单的Git选项中的Show Git log选项,随着项目开发文件的增加和提交的增加,使用IDEA提供的展示方式会更友好。

创建develop分支和功能分支

像上面说的,我们主要在该分支上进行开发,它是一个长期分支,创建分支你可以使用命令行git checkout -b develop,或者使用IDEA – Git中的New Branch,

这样,我们的develop分支就是基于master分支的初始化版本进行开发的。当前的新develop分支还没有新的提交点,你可以先在这里开发,或者直接创建所需的所有功能分支。我这里因为是预先对这个项目作了一个设计的,这个项目主要有三大模块,所以我先新建三个feature功能分支,若这三个功能分支开发并测试完成,则合并到develop分支中进行整体测试,测试完成,这时可以使用这个开发版投入实际环境中:beta版本,运行一段时间,修复若干问题再将这时的develop分支合并到master中,打标签成为第一个相对稳定版本RC版本。

分别实现项目的功能

我们写代码一般,写好主要的逻辑代码,然后测试,我这里是将测试代码都提交到Git的,详细测试完成就可以合并到develop中了。遇到bug或错误可以在功能分支或master、develop分支上新建issue分支进行修复。

详细怎么写代码,怎么测试,怎么修复问题,这里就展示不了了。而对于提交的问题,你可以单个文件提交或多个文件(一个功能)提交,又不一定都是逐个文件这样提交,项目文件太多,这样也太麻烦了,加上日后逐步修复问题,自然也会遇到单个提交的情况,主要是在提交的时候添加的信息对项目功能和修复的问题有一个较为简洁完整的描述。

分支合并冲突

在合并子分支的时候,这个问题多多少少都会遇到的,但是不要慌,正常提交,有冲突Git或IDEA会提醒你的,看清楚提示解决冲突,重新提交即可。

总结

以上是在IDEA中使用Git管理项目的示例,其中缺少介绍的内容有与远程仓库的交互、Git团队开发,我这个项目是个人开发的,如果加其他人开发,我想每个人负责一个或几个分支会比较好;另外在IDEA中配置git仓库地址很简单,你可以使用github或gitee,我这里是使用github的私人仓库。

年底了,天气冷,祝大家开开心心的,记得穿多件。明天继续写Junit5测试的相关文章,安啦!

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: