Git - IDEA集成
笔记
实际开发上,我们更愿意利用图形化界面如 IDEA 来进行 Git 的操作。
2024-01-04 @scholar
# IDEA集成Git
# 配置Git忽略文件
在开发过程中,IDEA 中集成 Git 是常见的操作。某些文件(如 *.class
、*.jar
等)不需要提交到 Git 仓库,因此需要配置 全局忽略文件 和 项目局部忽略文件。
小提示
- 项目根目录下的
.gitignore
文件优先生效,且作用范围更广。 .idea
下的.gitignore
文件作用范围仅限.idea
文件夹及子目录。
如果你想忽略整个项目的通用文件(例如 *.log
、target/
),请把规则写在 项目根目录 下的 .gitignore
文件中。
1. 全局忽略配置
目的:适用于当前电脑上的所有 Git 项目,忽略固定的一些文件和文件夹。
步骤 1:创建全局忽略文件
选择存放位置 将忽略规则文件放在用户家目录下(Windows 示例路径:
C:/Users/用户名/
)。- 文件名:
git.ignore
- 完整路径示例:
C:/Users/你的用户名/git.ignore
- 文件名:
编写忽略规则 打开
git.ignore
文件,写入以下内容:# 编译产生的 class 文件 *.class # 日志文件 *.log # IDE 配置文件和缓存 .idea/ *.iml *.ipr *.iws # Maven 和 Gradle 生成的目标文件 target/ build/ # 包文件 *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar # 临时文件 *~ *.tmp # 虚拟机崩溃日志 hs_err_pid* # Java 开发工具文件 .classpath .project .settings # VS Code 配置 .vscode/ # STS (Spring Tool Suite) .apt_generated .springBeans .sts4-cache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
步骤 2:引用全局忽略文件
告诉 Git 在所有项目中使用上面创建的 git.ignore
文件。
打开用户目录下的 Git 配置文件: 文件路径:
C:/Users/你的用户名/.gitconfig
- 如果文件不存在,可以手动新建
.gitconfig
。
- 如果文件不存在,可以手动新建
在
.gitconfig
文件中添加以下配置:[user] name = 你的Git用户名 email = 你的Git邮箱 [core] excludesfile = C:/Users/你的用户名/git.ignore
1
2
3
4
5注意:
- 路径分隔符必须使用正斜线
/
,不能使用反斜线\
,即使是在 Windows 上。
- 路径分隔符必须使用正斜线
验证配置
执行以下命令查看 Git 全局配置,确保
excludesfile
1正确生效:
git config --global --list
1
2. 项目局部忽略配置
目的:仅对当前项目生效的忽略规则。
步骤:创建局部 .gitignore
文件
在项目的根目录下新建一个
.gitignore
文件。填写
.gitignore
内容,可以参考以下模板:# Maven 目标目录 target/ !**/src/main/**/target/ !**/src/test/**/target/ # Gradle 构建目录 build/ !**/src/main/**/build/ !**/src/test/**/build/ # STS (Spring Tool Suite) 文件 .apt_generated .factorypath .project .settings .springBeans .sts4-cache # IntelliJ IDEA 配置文件 .idea/ *.iml *.ipr *.iws # NetBeans 配置文件 nbproject/private/ nbbuild/ dist/ nbdist/ .nb-gradle/ # Visual Studio Code 配置 .vscode/ # 日志和临时文件 *.log *.tmp *~ # 包文件 *.jar *.war *.zip # 虚拟机崩溃日志 hs_err_pid* # 系统文件 Thumbs.db ehthumbs.db Desktop.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
3. 验证忽略文件生效
检查全局忽略文件是否生效: 在任意新项目中创建一个
test.class
和test.log
文件,运行以下命令:git status
1- 如果文件被忽略,则不会出现在
Untracked files
列表中。
- 如果文件被忽略,则不会出现在
检查局部
.gitignore
是否生效: 在项目中放入.idea/
或target/
文件夹,运行git status
,确保这些文件被忽略。
提示
- 全局忽略:通过
~/.gitconfig
文件引用git.ignore
,适用于所有项目。 - 局部忽略:在项目根目录下创建
.gitignore
,适用于特定项目。 - IDEA 配置 Git:无需额外操作,IDEA 会自动识别
.gitignore
文件并排除指定文件。
# 定位Git程序
# 初始化本地库
选择要创建 Git 本地仓库的工程
# 移除Git版本控制
一般情况下直接把目录底下的.git文件删除即可,需要特别注意的是idea里面的目录映射也需要删除掉!
# 添加到暂存区
右键点击项目选择 Git -> Add 将项目添加到暂存区
# 提交到本地仓库
# 切换版本
在 IDEA 的左下角,点击 Version Control(新版是 Git),右键选择要切换的版本,然后在菜单里点击 Checkout Revision
# 创建分支
选择 Git,在 Repository 里面,点击 Branches 按钮
在弹出的 Git Branches 框里,点击 New Branch 按钮,填写分支名称,创建 develop1分支
然后再 IDEA 的右下角看到 develop1,说明分支创建成功,并且当前已经切换成 develop1分支
# 切换分支
在 IDEA 窗口的右下角,切换到 master 分支
然后在 IDEA 窗口的左下角看到了 master,说明 master 分支切换成功
# 合并分支
注意事项:
master
分支是我们部署在生产环境服务器的分支,master
分支的代码往往是最新的代码。通常我们有一个新的需求时不会直接在master
分支进行实施编码,而是基于master
分支拉出一个新的分支,在拉出来的新分支进行实施编码。只有当新分支的代码经过 code review 以及测试联调通过之后,才会将代码合并到master
分支等待部署上线。
- 在将新分支的更改合并到
master
之前,首先将master
分支的最新更改合并到新分支中。这确保了新分支包含了最新的代码。- 这个步骤很重要,因为它可以揭示和解决任何潜在的合并冲突,确保新分支与
master
分支保持同步。- 这样操作可以减少因丢失最新修改的代码而可能导致的线上问题。
- 切换到
master
分支并拉取最新代码:- 在 IntelliJ IDEA 左下角的 Git 面板中,切换到
master
分支。 - 拉取最新的远程更改以确保
master
分支是最新的。
- 在 IntelliJ IDEA 左下角的 Git 面板中,切换到
- 将
master
分支的更改合并到develop
分支:- 接着,切换到
develop
分支。 - 将
master
分支的更改合并到develop
分支。这一步确保develop
分支包含了master
的所有最新更改。
- 接着,切换到
- 将
develop1
分支的更改合并到master
分支:- 现在,切换回
master
分支。 - 将
develop1
分支的更改合并到当前的master
分支,合并完成。
- 现在,切换回
如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库。
# 解决冲突
注意
冲突发生的原因
- 相同代码的修改:当两个或多个开发人员修改了同一个文件的同一部分,并且一个人的更改已经被推送到远程仓库,其他人在拉取或推送时就可能遇到冲突。
- 合并操作:在执行合并操作时(例如子分支合并到
master
分支),如果master
分支上的代码在合并期间发生了更改,那么也可能产生冲突。
例如 在提交合并后的分支的时候,发现 本地master 分支和 远程master 分支都修改了相同的代码,在合并分支的时候就会发生冲突,这个时候就需要你手动解决冲突了!!
所以在我看来,只要你的同事不和你修改同一个文件的同一部分,一般不会出什么问题,就算冲突发生了也不要慌,和同事沟通一下,决定哪些更改应该保留,哪些应该放弃!!
# IDEA集成GitHub
# 设置GitHub账号
如果出现 401 等情况连接不上的,是因为网络原因,可以使用以下方式连接:
然后去 GitHub 账户上设置 token
点击生成 token
复制红框中的字符串到 idea 中
点击登录
# 分享工程到GitHub
输入仓库名称和介绍
来到 GitHub 中发现已经帮我们创建好了 gitTest 的远程仓库
注意:如果推送失败可以把远程地址定义为ssh密钥来进行连接
# 推送本地库到远程库
右键点击项目,可以将当前分支的内容 push 到 GitHub 的远程仓库中
注意:push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高。
因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别。如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送。
# 拉取远程库到本地库
右键点击项目,可以将远程仓库的内容 pull 到本地仓库
注意:pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。
# 克隆远程库到本地
为 clone 下来的项目创建一个工程,然后点击 Next
# IDEA集成Gitee
众所周知,GitHub 服务器在国外,使用 GitHub 作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,可以使用国内的项目托管网站:码云(Gitee)。
码云是开源中国推出的基于 Git 的代码托管服务中心,网址是 https://gitee.com/
,使用方式跟 GitHub 一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择。
# IDEA安装Gitee插件
IDEA 默认不带码云插件,我们第一步要安装 Gitee 插件。
如图所示,在 IDEA 插件商店搜索 Gitee,然后点击右侧的 Install 按钮。
IDEA 链接码云和链接 GitHub 几乎一样,安装成功后,重启 IDEA
IDEA 重启以后在 Version Control 设置里面看到 Gitee,说明码云插件安装成功
然后在码云插件里面添加码云帐号,我们就可以用 IDEA 连接码云了
# 本地库推送到远程库
IDEA 连接码云和连接 GitHub 几乎一样,首先在 Idea 里面创建一个工程,初始化 Git 工程,然后将代码添加到暂存区,提交到本地库,这些步骤上面已经讲过,此处不再赘述。
自定义远程库链接
给远程库链接定义个 name,然后再 URL 里面填入码云远程库的 HTTPS 链接即可。码云服务器在国内,用 HTTPS 链接即可,没必要用 SSH 免密链接
然后选择定义好的远程链接,点击 Push 即可
看到提示就说明 Push 远程库成功。
只要码云远程库链接定义好以后,对码云远程库进行 pull 和 clone 的操作和 Github 一致,此处不再赘述。
# 码云复制GitHub项目
码云提供了直接复制 GitHub 项目的功能,方便我们做项目的迁移和下载。
具体操作如下:
将 GitHub 的远程库 HTTPS 链接复制过来,点击创建按钮即可
如果 GitHub 项目更新了以后,在码云项目端可以手动重新同步,进行更新