Intellij Idea + Git 完美实战!

环境准备

  • 使用前需要安装一个远程的 Git 仓库和本地的 Git 客户端。
  • 由于IDEA中的Git插件需要依赖本地Git客户端,所以需要进行如下配置:

如果本地已有项目,直接通过如下操作,即可在远程自动创建仓库并关联

1. 克隆远程仓库代码(适用于本地无代码,从远程仓库 pull 下来)

注意: 克隆后的文件位置给出的文件如果不存在会自动创建,如果存在,需要为空

克隆成功

2. 初始化 git 仓库(一个新的项目,从 0 开始)

3. 提交(commit) 拉取(pull) 推送(push) 代码

有多种方式可以进行操作,文章中只列举一种

  • 多人合作分支:commit → \to → pull → \to → push,防止代码丢失
  • 单人分支:commit and push,后续弹窗中进行push选择

commit(将所有文件添加到暂存区中)

项目名右击 → \to → Git → \to → Commit Directory...

或者直接点击小图标

界面底下,这里可以看到当前情况

4. push(将代码推送到远程仓库)

点击 push 按钮推送代码:

或者直接点击小标图

确认推送内容:

查看远程仓库发现已经提交完成:

5. pull(从远程仓库拉取代码)

在远程仓库添加一个TestPull.md文件:

从远程仓库拉取代码:

确认拉取分支信息:

6. 从本地创建分支并推送到远程

在本地创建lqh分支,点击右下角的Git:master按钮:

使用push将本地lqh分支推送到远程:

查看远程仓库发现已经创建了lqh分支:

7. 删除分支

删除分支后,需要 push 到远程仓库

8. 分支切换

从 lqh 分支切换回 master 分支:

9. Git文件冲突问题解决

修改远程仓库代码:

修改本地仓库代码:

提交本地仓库代码并拉取,发现代码产生冲突,点击Merge进行合并:

点击箭头将左右两侧代码合并到中间区域:

冲突合并完成后,点击Apply生效:

提交代码并推送到远程。

10. 合代码(不同分支合代码)

  • 描述: 有分支 master,分支 lqh,现计划将分支 lqh 的部分代码合到分支 master 上
    lqh 与 master 分支相同文件的差异如下(这里仅演示方便,差异不在代码而在 README.md ,代码同)

master 分支

lqh分支

  • 切换本地分支为目标分支 master,即将代码合到此分支上
  • 切换前先进行 fetch 操作,保证分支完备

切换为目标分支之后,对此分支进行pull操作,保证当前代码版本为最新

项目名称上右击 → \to → Git → \to → Compare with branch...

选择需要合并到 master 的分支 lqh

最右边 changes 会展现两个分支之间的差异

蓝色文件:两个分支都有,但有一部分做了修改

绿色文件:分支 lqh 有,而分支 master 没有

灰色文件:分支 master 有,而分支 lqh 没有

若要合并灰色文件和绿色文件,建议:

  • 先跳转到存在此文件的分支,复制备份要合并的灰色或绿色文件,
  • 在切换回要合并的目标分支上,将复制好的文件粘贴到对应分支的对应包下

以下步骤为合并蓝色文件的操作


左侧为分支 lqh,右侧为分支 master,点击箭头可将分支 lqh 对当前文件的修改应用到分支 master

修改之后可看到,此文件已有蓝色标识和修改记号

将需要修改的文件修改完毕后可将代码推送到远程分支B

操作顺序:commit 修改内容 → \to → pull 再次拉取代码,保证代码最新 → \to →push修改内容到远程分支

对单独一个文件进行代码合并操作

  • 在当前项目文件右击 -> Git -> compare with... 和本分支的历史版本做对比
  • 在当前项目文件右击 -> Git -> compare with the Same Repository Version 和当前版本做对比(即和修改之前的做对比)
  • 在当前项目文件右击 -> Git -> compare with Branch 和其他分支版本做对比

References

Intellij Idea + Git入门到上手操作,完美实战!

idea集成git详解教程(实用篇)

IDEA 使用Git图文详解(学好idea操作git大全)

相关推荐
scott.cgi10 分钟前
Unity直接编译Java文件作为插件,导致失败的两个打包设置
java·unity·unity调用java·unity的java文件·unity的android插件·unity调用android·unity加载java代码
澈2074 小时前
C++并查集:高效解决连通性问题
java·c++·算法
2401_873479406 小时前
运营活动被薅羊毛怎么防?用IP查询+设备指纹联动封堵漏洞
java·网络·tcp/ip·github
ShiJiuD6668889996 小时前
大事件板块一
java
摇滚侠6 小时前
@Autowired 和 @Resource 的区别
java·开发语言
SeaTunnel6 小时前
(八)收官篇 | 数据平台最后一公里:数据集成开发设计与上线治理实战
java·大数据·开发语言·白鲸开源
吴声子夜歌7 小时前
Java——线程的基本协作机制
java·线程协作
谙弆悕博士7 小时前
【附C++源码】从零开始实现 2048 游戏
java·c++·游戏·源码·项目实战·2048
独自归家的兔8 小时前
OCPP 1.6 协议详解:GetLocalListVersion 获取本地列表版本指令
java·后端·物联网·spring·ocpp1.6
Apache RocketMQ9 小时前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq