4-IDEA集成Git

AffettoIris 2023-2-3 2,491 2/3

1.1 配置Git忽略文件

在用IDEA使用Git前,我们需要先配置Git忽略文件。对于Jetbrains和Eclipse等软件,总会多多少少带有一点非程序员自己造的代码文件,如下图的.xml、.iml,我们在git commit时不想理会这些文件,就要配置Git忽略文件

4-IDEA集成Git

为什么要忽略他们?

答:与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差异。

怎么忽略?

答:创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是git.ignore)。这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用户家目录下(C:\User\iris\),完整代码如下。

4-IDEA集成Git

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see 
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml

有了忽略文件,你还需要让Git引用忽略文件

在*.gitconfig里加入如下代码:
[core]
    excludesfile = C:/Users/iris/git.ignore

1.2 在IDEA中添加系统里的Git.Exe到IDEA里

4-IDEA集成Git

选好git.exe后,test下,看到git version无误后,即可。

1.3 IDEA里玩Git

刚创建的项目是没有git init过的,咱不用git bash初始化,low了。点击VCS(Version Control Setting) - Import into Version Control - Create Git Repository,随后它会让你选择对哪个文件夹git init

4-IDEA集成Git

初始化完成后你就可以看见.git文件夹了。pom.xml还变红了,要知道git里红色代表文件未追踪(git add),说明Git接管了这个文件夹。

4-IDEA集成Git

两种方法来git add,法一:

4-IDEA集成Git

发现它变成未commit的绿色状态了:

4-IDEA集成Git

在此总结工作区的文件的颜色涵义:
绿色——已追踪暂未提交;
红色——未追踪;自己建立新文件后就是红色的,出现红色的一定要Add到git中,不然不能上传到远程仓库
蓝色——已追踪,之前提交了,但是后来改动后未提交;
白色——已追踪,已提交,无改动;
灰色——版本控制已忽略文件,即不受git控制的文件;
黄色——受git控制,被git忽略,不跟踪。

附:合并代码时不同颜色区块的含义:
灰色:删除
蓝色:改变
绿色:新增
红色:冲突

接着我们新建一个java文件,弹窗提示是否将该文件git add到暂存区,如果选择cancel也没事,稍后我们手动git add即可:

4-IDEA集成Git

如果对文件夹git add,可能提示以下信息(该文件夹下可能包含git忽略文件,你想强制git add它们吗?)选择cancel:

4-IDEA集成Git

当我们对文件夹git add后再右键 - git - commit directory ...,弹窗左上角显示的是暂存区的所有文件,对比工作区你会发现没有.idea文件夹及其包含的忽略文件:

4-IDEA集成Git

你可以在Commit Message框里填写日志信息,Your version框里显示你提交的代码。等commit完后文件恢复正常的颜色,比如黑色,我的皮肤里显示的是白色。

接着我给文件新增一行代码,add 后commit,IDEA很贴心,显示了a9d202c版本号时的代码和当前版本的代码,并用绿色圈出变化区域:

4-IDEA集成Git

其实IDEA比git bash自由点,比方说,git add真实含义是追踪而非添加到暂存区,对于已经追踪过的文件,IDEA支持下次修改其代码,未经git add即可直接commit,因为该文件已经追踪过了。

如何git branch -v呢?:IDEA左下角有个按钮,叫git / version control,点开后看log栏

4-IDEA集成Git

如图,点击最新的commit记录,右下角表示黄色标签标记了HEAD指向哪个分支,在此指向master分支,绿色标签标记了master指向哪次commit(哪个版本),在此指向third commit。

如何git checkout 呢?

选中版本号右键 - checkout Reversion

4-IDEA集成Git

切换前我的GitTest.java文件原本是三行System的,切换后v3时期写的第三行不见了:

4-IDEA集成Git

1.4 IDEA里创建分支

法一:对项目文件夹右键 - git - branches - new branch:

4-IDEA集成Git

法二:在IDEA右下角显示当前所处分支master,点他:

4-IDEA集成Git

1.5 IDEA里切换分支

4-IDEA集成Git

1.6 IDEA里合并分支

正常合并

去hot-fix分支,新增一行代码"hello git4"并commit,回master分支,此时git - log栏显示hot-fix在hot-fix commit1版本,master在third commit版本:

4-IDEA集成Git

我们站在master分支上,点击hot-fix分支 - Merge "hot-fix" into 'master',然后就合并成功啦

4-IDEA集成Git

冲突合并

基于上述步骤,我们去hot-fix分支新增代码"hot-fix test"并commit,checkout master,新增代码"master test"并commit,点击hot-fix分支 - Merge "hot-fix" into 'master',弹窗选择Merge:

4-IDEA集成Git4-IDEA集成Git

第一板块显示来自master的代码,第三板块显示来自hot-fix代码,中间板块既是不冲突的重合代码,也是直接Apply下的最终代码。分界处有X >>> <<< X,代表不要这串代码和将这串代码右移 / 左移至结果代码中。当弹窗如下就表示冲突都解决了:

4-IDEA集成Git

直接Apply。现在看日志信息,两条线合并了,代表hot-fix commit2与master commit2和合并了:

4-IDEA集成Git

1.7 IDEA集成Github

打开IDEA的Setting - Version Control - Github,如果没有Github,就是没安装插件,安装呗:

4-IDEA集成Git

在Github界面点击+新增账号,点击—删除账号。国内网络是不容易用卡密登陆上的,可推荐用Token登录,毕竟可以控制Token过期时间和权限,Tokens获取:

4-IDEA集成Git4-IDEA集成Git

Note:给口令起个名字,比如口令用途,下方的标签是权限,安全的话就拉满。生成口令后一定要复制留存,因为它只会显示一次,刷新后都不显示第二次。忘了就只能再造一个Token。

1.8 分享项目到Github

git bash里这部操作需要先到github建仓库再到git bash去push,IDEA自由度高,可一步到位:

4-IDEA集成Git

下图分别是:远程库名字,设为私有仓库,git remote add 别名 地址,描述

4-IDEA集成Git

附:git remote rm 别名 可删除别名

测试发现,建议开VPN时分享项目到github,不然上传代码失败,无论何种登陆方式。

1.9 Github已有远程库后Push至远程库

法一:对文件 / 文件夹右键-git-push;

法二:

4-IDEA集成Git

push界面:

4-IDEA集成Git

左上角意思是将本地库的master push至别名为git-test的远程库的master上,但是这个是别名默认等价于远程库的https连接,需要vpn,不如用ssh连接,先新建别名:

4-IDEA集成Git

输入别名和ssh地址:

4-IDEA集成Git

启用ssh地址:

4-IDEA集成Git

现在push即可成功。

注意: push是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push的操作是会被拒绝的。也就是说,要想push成功,一定要保证本地库的版本比远程库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先pull 拉取一下远程库的代码(所以每次push到远程库前不妨都pull下),将本地代码更新到最新以后,然后再修改,提交,推送!

1.10 Pull From 远程库以更新本地库

注意: pull是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。

在Git - pull里即可pull from 远程库:

4-IDEA集成Git

1.10 Pull和Clone有什么区别

clone”是在本地没有版本库时,将远程库整个下载到本地;而“pull”是在本地有版本库时,从远程库中获取最新commit数据,并合并到本地。“git pull”相当于“git fetch”加“git merge”。

通常情况下,远程操作的第一步,是使用git clone从远程主机克隆一个版本库到本地。本地修改代码后,每次从本地仓库push到远程仓库之前都要先进行git pull操作,保证push到远程仓库时没有版本冲突。

1.12 Clone From 远程库到本地

假设我们删库了,删了工作区git-demo。重启IDEA,选择:

4-IDEA集成Git4-IDEA集成Git

- THE END -

AffettoIris

10月16日15:51

最后修改:2023年10月16日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论