Java开发必会Git分布式版本控制系统实战篇

一、创建SpringBoot项目

首先在idea中快速创建一个SpringBoot项目,然后我们将代码托管至Github上面。

1、pom.xml文件依赖、很简单的web项目依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

2、基础包结构,大致如下,反正就是先创建很简单的web项目,我们将它托管到Github上面,这才是本篇文章的意义
在这里插入图片描述

二、Git全局配置

第一步配置Git本地安装地址,找到本地安装目录/bin/git.exe,将其加入idea当中,如下
在这里插入图片描述
第二步配置Github账号、具体如下
在这里插入图片描述
接下来点击添加账户,会弹出一个框输入Github账号密码,进行登录
在这里插入图片描述
登录成功以后,会显示自己的Github登录用户名名称以及邮箱头像信息,如下
在这里插入图片描述
点击apply,ok,这样Git的全局配置在idea中已经完成了。

三、初始化Git仓库

点击工具栏VCS、按照以下步骤依次操作,进行Git仓库创建。
在这里插入图片描述
选择之后,会弹出一个框,如下,选择项目的父级目录,如下。
在这里插入图片描述
选择ok之后,我们的项目出现了如下变化。
在这里插入图片描述
进入我们本地创建的项目根目录下,胡发现多了一个 .git 的文件夹,如果没显示,可调式计算机显示隐藏文件即可看到,如下。
在这里插入图片描述
并且idea工具栏上方多了一个Git的操作工具,如下
在这里插入图片描述
此时相当于该项目全部模块交给Git管理了。

四、忽略掉Git提交的文件

项目右键,点击Git,点击 .git/info/exclude,会弹出一个编辑区。当然你找到本地项目存放地址,在.git目录下也是可以找到该文件的。
在这里插入图片描述
我这里是打开本地项目存储位置.git下面的那个文件,进行编辑的。你在idea中直接编辑也是可以的,因为我的打不开那个文件,所以我没在idea里面编辑
在这里插入图片描述
在这里插入图片描述
排除 .idea 以及所以带 .iml 后缀的文件,因为有的文件我们是不需要同步到Github上面进行托管的。

此时当我们编辑保存后,idea会自动刷新的,那些我们排除托管的文件包就变成了灰色,如下
在这里插入图片描述

五、将代码添加至暂存区

同样还是对着项目根目录鼠标右键,如下,点击Add
在这里插入图片描述
此时我们的代码文件就变成绿色了,如下。
在这里插入图片描述
此时我们点击idea上面的Git工具栏,绿色打钩那个按钮,进行提交注释,如下
在这里插入图片描述
进行提交注释,创建Git本地版本库。
在这里插入图片描述
此时可能,提交不成功,就是会检测有的文件不规范,你直接选择commit,强制提交就好了。如果错了怎么办,我们回滚回去,重新提交就好了,选择idea工具栏上面的Git工具栏,这个返回箭头位置,点击可进行回滚到之前的状态。当然我的提交成功了 所以就不能回滚了。
在这里插入图片描述
然后你点击这个时钟按钮就可以查看历史提交记录了,如下。
在这里插入图片描述
在这里插入图片描述

五、将本地Git仓库上传至Github上

1、创建Github仓库
在这里插入图片描述
创建一个仓库,输入仓库名称信息等。
在这里插入图片描述
点击创建后,可看到创建的仓库Https地址,如下界面
在这里插入图片描述
此时我们复制好仓库地址,回到idea中,对着项目鼠标右键,如下
在这里插入图片描述
点击push后,弹出Github仓库地址填写,将我们复制好的仓库地址填写如其中,点击ok
在这里插入图片描述
ok之后,再点击push,如下
在这里插入图片描述
push的时候可能会失败,比如出现如下错误。

Caused by: java.io.IOException: Server returned invalid Response.

仔细检查网络,一般都是网络问题,重新push一下,就好了,出现如下提示:说明推送成功了

16:33	Pushed master to new branch origin/master

六、刷新Github仓库

可以发现我们的项目已经成功提交了。
在这里插入图片描述

七、测试代码更新提交

此时我们到项目中再添加一点代码,再次提交至Github中
在这里插入图片描述
此时该文件变蓝色了,表示修改了未提交。
在这里插入图片描述
项目的本地存储文件,有个红色的感叹号,表示我们修改了里面的内容,但未提交至Github当中。
在这里插入图片描述
修改以后,再次提交。
1、第一步还是提交至本地Git仓库
在这里插入图片描述
在这里插入图片描述
2、push到远端
怎么push,操作和上面说过的一样。
在这里插入图片描述
出现如下说明第二次修改提交也完成了。
在这里插入图片描述
登录至Github上面查看
在这里插入图片描述
此时我们的项目托管已经ok了,不过这只是针对个人开发进行的项目托管。
在这里插入图片描述

八、创建分支以及合并分支

1、创建分支
在这里插入图片描述
点击弹出一个框,然后我们点击创建一个分支,如下
在这里插入图片描述
填写分支名称
在这里插入图片描述
创建成功后,idea左下方会有一个提示,如下
在这里插入图片描述
表示分支创建成功,摈弃已经成功切换至该分支了(test分支),怎么证明呢?
项目鼠标右键选择Git…如下。
在这里插入图片描述
看到如下这个分支前面的标签,说明已经切换到test标签了。
在这里插入图片描述
此时我们在这个分支上面添加一些代码。
在这里插入图片描述
然后我们再次commit它
在这里插入图片描述
在这里插入图片描述
此时我们查看历史提交记录,点击Git工具的那个时钟按钮
在这里插入图片描述
可以看到我们在分支上面添加了记录。
2、合并分支
切换到master主线上面。还是项目鼠标右键
在这里插入图片描述
弹出如下框,选择master,点击切换Checkout
在这里插入图片描述
此时查看我们的历史记录,已经成功切换至master了,并且test分支创建的提交历史记录在这里已经看不到了,而且代码在主线里面也看不到了。
在这里插入图片描述
开始合并分支代码,还是项目鼠标右键,选择这个Merge Changs
在这里插入图片描述
选择要合并的分支,打钩,进行合并。
在这里插入图片描述
出现如下提示表示合并成功了。并且很直观的看到我们的代码中已经合并了test分支的代码片段了。
在这里插入图片描述
最后我们再次push提交至远端。
在这里插入图片描述
ok提交成功了。
在这里插入图片描述
Github上面的代码中也成功推送进来了
在这里插入图片描述

九、Git解决冲突

1、首先我们在主干(master)上面添加内容
在这里插入图片描述
再进行commit提交
在这里插入图片描述
2、切换到分支(test)上面添加内容
在这里插入图片描述
同样添加内容后进行commit操作
在这里插入图片描述
现在分别在主干和分支添加了内容我们要进行合并,合并在哪里呢?肯定是主干了。
1、先切换至主干
2、再次合并分支
合并分支此时勾选了合并要合并的分支后,会弹如下框,表示出现冲突了,需要处理。
在这里插入图片描述
我们选择Merge按钮,此时也会弹出一个框,将主干的代码与分支代码标注出来,可选择进行合并主干的还是分支的。
在这里插入图片描述
当然也可以两者都合并在一起,我们选择两者都合并。依次点击双向箭头,进行合并。
在这里插入图片描述
此时可看到对主分支代码进行了合并
在这里插入图片描述
点击apply即可完成冲突代码合并。查看历史提交记录,已经合并了test分支,解决 了冲突。
在这里插入图片描述
然后我们可再次push到远端。
在这里插入图片描述

十、更新本地库

在协同开发过程中,可能是多个人一起开发,提交至Github上,此时你要保证本地库是最新的,才能push到远端。
1、测试,修改远端代码
假设你的同伴修改了代码,做了提交,此时你本地已不是最新的代码,你做修改了之后也提交了,能提交成功吗?当然不会,怎么做呢?
在这里插入图片描述
然后我们编辑一下
在这里插入图片描述
2、测试,修改本地代码进行提交
此时本地已经不是最新代码,我们添加新的代码,再次commmit再push
在这里插入图片描述
在这里插入图片描述
此时本地不是最新的代码,同伴已经对仓库里最新代码做了修改提交,然后我们本地做新的内容添加提交会成功吗?
点击push进行远端推送。此时弹出一个框,push失败了,遭到拒绝了,因为现在不是罪行的,需要从远处合并过来最新的。
在这里插入图片描述
我们点击Rebase,保持和远端一样,再提交。然后又会弹出一个框,需要我们进行合并远端代码。我们点击合并。
在这里插入图片描述
和之前合并还是一样的操作。
在这里插入图片描述
此时可能会出现push失败了,出现如下警告。
在这里插入图片描述
我们重新push就好了。
在这里插入图片描述
ok、Github上面已经做了最新的合并提交了
在这里插入图片描述

十一、总结

到此Idea中如何使用Git进行分布式版本控制就实战完了。
好处一:本地拥有版本库,随时进行版本后退

比如我们在workspace做一个登录注册的功能,可以先把一部分写好的代码commit到本地库Repository,后面再完成另一部分代码后再次commit到Repository,这个时候我们想要回退到前一个代码版本,直接在本地操作即可,待最后功能完成就可以push到远程库Remote,而不会出现别人在svn下载到一份有不完整功能的代码。

好处二:非常简单的建立分支

比如我们针对Android项目研究是否兼容X5,如果在svn我们往往会从服务端update一份新的代码下来本地进行修改研究。而使用Git则可以直接建立一个分支branch,直接在该分支上修改,修改之后commit到该分支的对应本地库的位置,期间还可以切换回主分支进行修改其他代码。

好处三:速度更快,特别是熟悉git命令后

无论是在克隆clone代码还是切换分支、提交修改,这些步骤无论从逻辑机制和速度来说都有了极大的提高,为我们节省了不少宝贵的时间,而不需要SVN漫长的等待。

好处四:指定和若干不同的远端代码仓库进行交互

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DT辰白

你的鼓励是我创作的源泉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值