git:码云仓库提交
1 前言
码云访问稳定性优于github,首先准备好码云的账户:
官网下载GIT,打开git bash:
查看当前用户的所有GIT仓库,需要查看全局的配置信息,使用如下命令:
git config --global --list
可以查看到配置的user.name和user.email:
如果希望查看user.name,可以执行如下命令:
git config --global user.name
或者查看email:
git config --global user.email
如果没有配置name和email,那么需要先配置:
git config --global user.name "xiaoxu"
git config --global user.email "xxx@xxx.com"
2 操作步骤
首先配置SSH的免密登录(HTTPS的方式每次需要账户和密码才能登录):
进入git bash,执行如下:
ssh-keygen -t rsa -C "xiaoxu", "xxx@xxx.com"
若输入为邮箱,则连续3次回车,在本地的用户目录下,有.ssh文件夹,其中存放如下文件:
id_rsa.pub是公钥文件,以idea方式打开该公钥文件:
将其完整复制(包括开头的ssh-rsa)即可。
或者使用命令:
cat ~/.ssh/id_rsa.pub
复制如下的公钥即可:
同时在码云里找到账号设置:
找到安全设置的SSH公钥:
标题随意,粘贴公钥即可:
码云提交需要验证,输入你创建该码云账户时的账户密码即可添加SSH公钥成功。
回到git bash进行验证,执行如下命令:
ssh -T git@gitee.com
输入yes,回车即可:
3 码云仓库创建项目
点击新建仓库:
输入仓库名称:
这里仓库我选择私有仓库,语言使用Java,.gitignore选择Maven即可,分支模型选择生成/开发模型,在dev环境时部署到dev分支,到生产环境时,合并到master分支即可:
新建仓库后,找到gitee上的克隆/下载,点击复制
点击复制如下的HTTPS的git链接:
打开idea,选择:File->New->Project from Version Control
如下,Version Control选择GIT:
URL粘贴刚才从gitee仓库上复制来的HTTPS的链接即可:
同时点击idea的clone按钮:
idea提示需要输入Username和Password:
gitee提示,使用HTTPS协议时,会出现账号密码验证步骤,建议配置使用私人令牌代替登录密码:
在gitee上创建私人令牌:
点击提交后输入创建gitee账号时的密码即可,注意私人令牌需要自己妥善保存好,因为平台在关闭后续,不会再展示该私人令牌了。
按照码云的提示输入username和私人令牌:
在idea上填写userName和刚才生成的私人令牌密码即可:
点击Log In后,选择New Window打开该项目成功:
接下来新建模块Module:
新建模块Module时,发现没有Spring Initializer的选项,原因可能是没有下载Spring Boot插件:
先下载插件:
点击File->Settings:
点击Plugins,非社区版搜索Spring boot,然后安装插件即可。
这里是社区版,没有找到Spring boot插件,亦可以选择安装Spring Assistant插件,插件安装后记得restart重启idea。
这里使用maven创建:
填入下方参数:
新建成功:
类似上述操作,创建多个module如下:
同时在根项目目录xiaoxumall下,新建pom.xml(module标签中是上述新建module的name,也就是文件夹名,比如order等等):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xiaoxu.mall</groupId>
<artifactId>xiaoxumall</artifactId>
<version>1.0-SNAPSHOT</version>
<name>xiaoxumall</name>
<description>小徐商城聚合服务</description>
<packaging>pom</packaging>
<modules>
<module>user</module>
<module>storage</module>
<module>startup</module>
<module>product</module>
<module>order</module>
<module>coupon</module>
</modules>
</project>
然后添加总pom文件,点击右侧的Maven按钮,点击+号(Add Maven Projects):
选择上面新建的根项目pom文件:
添加后,可看到刚才还是普通的xml文件的标识,现在更新为带有m(Maven)标识的pom文件了:
针对根pom执行ctrl+shift+o后,可见根目录出现root的标识:
同时在根root执行clean命令(清除target目录下的二进制.class文件):
全部的module模块,均会执行clean命令:
另外GIT没有展示出来Local Changes,选择idea:File->Settings->Version Control->Commit->取消勾选的Use non-modal commit interface:
取消后点击:apply->ok即可
可以看到idea已经出现Local Changes,其中包含Unversioned Files:
其中包含许多*.iml文件,那么我们尝试在根项目的.gitignore文件中,忽略掉该文件的提交,新增:**/*.iml:
刷新后可知,Unversioned Files中已经不包含.iml的文件了,因为git已经忽略了这些文件的提交管理了。同时下面可见,被忽略的文件在idea中呈现灰色了,意即已被忽略的文件:
同时我们在根root下执行compile编译操作(所有的module均会执行编译操作):
编译后,会生成target目录,因为.java文件编译后,会生成二进制的.class文件,.class文件就会放置于target目录中:
正常来说我们也应该在git提交时,忽略掉这些target文件数据,不过在根.gitignore文件里,已经忽略了target/目录数据,故而此处无需配置:
最后忽略根目录的idea文件夹,以及全部module下的.gitignore文件,最后可见剩下的8个未被版本管理起来的文件,都是我们的代码文件了:
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
**/*.iml
.idea
**/.gitignore
刚才主要为了演示gitignore的忽略文件方式,现在准备提交代码,将上面取消勾选的Use non-modal commit interface重新勾选上:
可以看到idea左侧出现Commit一栏(因为勾选了Use non-modal commit interface选项,默认勾选就是存在的):
点击Commit后,idea提示如下:
如果确保代码不存在问题,则无需review,直接点击Commit即可:
点击Commit后,此时gitee码云还未更新,因为还未执行push操作:
一般git指令操作顺序为:
git status
git add *
git commit -m "xxx备注"
git push
故而我们缺少了最后push的一步:
从idea的展示上也能看出,紫色是origin远程分支提交,而黄色是HEAD,绿色是mater本地分支(不带origin的标识),所以我们只是提交到了本地分支上,还需要push到远程分支上:
点击右下角的master分支按钮:
在我们的本地分支(Local Branches)master上,有绿色的push按钮,点击此按钮push到远程gitee的master分支上即可:
出现如下的push界面,点击push按钮即可:
提交后,可以看到idea上的分支提交标识中含有紫色的远程分支标签,说明代码提交成功:
同时gitee仓库代码提交成功: