zl程序教程

您现在的位置是:首页 >  工具

当前栏目

【分布式版本控制系统Git】| IDEA 集成 Git 、IDEA 集成 GitHub

2023-09-14 09:14:07 时间

目录

 

一:IDEA 集成 Git

1. 环境准备

2. IDEA集成Git基本实操

3. 切换版本

4. 切换分支

5. 合并分支

二:IDEA 集成 GitHub

1. 设置 GitHub 账号

2. 分享工程到 GitHub

3. push 推送本地库到远程库

4. pull 拉取远程库到本地库

5. clone 克隆远程库到本地


一:IDEA 集成 Git

1. 环境准备

(1)为什么要忽略它们?

答:与项目的实际功能无关,不参与服务器上部署运行,例如下面的.idea文件、.iml文件都是IDEA工具自带的文件;把它们忽略掉能够屏蔽 IDEA工具之间的差异!

 (2)怎么忽略?

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

git.ignore 文件模版内容如下:

# 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 

(3)在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)

注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)” !

[user]
	name = zl
	email = zl@qq.com
[credential]
	helper = manager-core
[core] 
    excludesfile = C:/Users/86177/git.ignore

(4)定位 Git 程序

在Version Control(版本控制工具)----》Git中进行定位!

2. IDEA集成Git基本实操

(1)初始化本地库

此时创建的这个Maven工程,还没有被git管理在工程的文件夹下没有.git文件;所以我们需要先进行初始化!怎么初始化?

VCS-->Import into Version Control-->Create Git Repository

初始化好以后,此时的项目目录下面,就有.git文件,表示被git管理了

此时pom.xml文件是红色的,意思就是检测到是未被追踪状态

功能栏的VCS也变成了Git

(2)添加到暂存区

右键点击项目选择 Git -> Add 将项目添加到暂存区!

此时pom.xml文件是绿色的,意思就是已经添加到暂存区

(3)提交到本地库

右键点击项目选择 Git -> Commit Directory将项目提交到本地库!

添加提交信息, 相当于我们-m参数提交的信息

3. 切换版本

对于我们后续修改了代码,可以不需要再添加到(add)暂存区,因为前面我们都已经追踪过了,可以一步从工作区直接提交到本地仓库!

点击IDEA左下角的Git,可以查看版本

切换到其它的版本

有两个指针表示,绿色的表示当前master分支的指针,黄色的表示当前界面看到的头指针!头指针是指向master的!

 切回到最初的那个版本

4. 切换分支

(1)先创建分支

第一种方式:右击鼠标---》Git---》Branches

出现以下界面

第二种方式:找到右下角---》左击鼠标

(2)切换分支

此时是在hot-fix分支,切换到master分支

5. 合并分支

(1)正常合并:只有hot-fix修改

首先在hot-fix分支,增加代码并提交到本地

package com.zl.git;

public class GitTest {
    public static void main(String[] args) {
        System.out.println("Hello World");
        System.out.println("Hello World2");
        System.out.println("Hello World3");
        System.out.println("hot-fix");
    }
}

切换到master分支,进行合并

绿色的表示有两个分区:hot-fix、master,黄色表示头指针,表示指向的是当前的master!

点击hot-fix,选中Merge把hot-fix合并到master!

此时的master和hot-fix就合并到同一个分支! 

注:如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库。

(2)冲突合并

如果 master 分支和 hot-fixx 分支都修改了代码,在合并分支的时候就会发生冲突!

对于master分支,添加代码并提交

package com.zl.git;

public class GitTest {
    public static void main(String[] args) {
        System.out.println("Hello World");
        System.out.println("Hello World2");
        System.out.println("Hello World3");
        System.out.println("hot-fix");
        System.out.println("master-test"); // 添加的代码
    }
}

对于hot-fix分支,添加代码并提交

package com.zl.git;

public class GitTest {
    public static void main(String[] args) {
        System.out.println("Hello World");
        System.out.println("Hello World2");
        System.out.println("Hello World3");
        System.out.println("hot-fix");
        System.out.println("hot-fix test"); // 添加的代码
    }
}

现在站在 master 分支上合并 hot-fix 分支,就会发生代码冲突

点击 Conflicts 框里的 Merge 按钮,进行手动合并代码

手动合并完代码以后,点击右下角的 Apply 按钮

注:此时master分支是两个分支合并后的结果,而hot-fix分支还是原来的结果!并且代码冲突解决,是自动提交本地库!

二:IDEA 集成 GitHub

首先自检IDEA的Version Control有没有GitHub插件

如果没有可以先到插件中去下载

1. 设置 GitHub 账号

第一种情况:跳转到浏览器进行验证,网络不好很难登上!

第二种情况:去 GitHub 账户上设置 token(口令),使用口令进行登录!

注:此口令只会显现一次,刷新就看不到了;但是可以重新再生成!

生成口令的步骤:点击登录头像的图形下标---》选择Settings---》选择最后一行Developer settings---》Personal access tokens,此时有两个选项:

第一种:fine-grained personal access token,即细粒度个人访问令牌。可以对一个仓库设置一个token,还可以设置每一个permission(权限),粒度比较细。

第二种:personal access token (classic),即个人访问令牌(分类化)。

成功生成token后

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

 打开IDEA,使用token登录

学习环境权限作用域都点上

 登录成功界面如下:

2. 分享工程到 GitHub

对于老版本的IDEA是VCS---》Import into VersionControl---》Share Project on GitHub

对于新版本的IDEA是Git(是VCS的位置)---》GitHub---》Share Project on GitHub

创建远程库和别名

这种方式实际上有两个功能:

①先创建了一个Git远程仓库(这个仓库一定是在远程上没有的);

②再把代码整个项目提交到远程仓库Git;

点击share,出现以下界面表示推送成功

在GitHub中查看远程库Git,发现已经把整个项目推送过来

3.  push 推送本地库到远程库

右键点击项目,可以将当前分支的内容 push 到 GitHub 的远程仓库中。

会出现以下界面

 选择Define Remote在这里可以创建远程链接的别名

指定远程仓库的地址和别名

 

选定我们刚才定义的仓库

 

注意:push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改、提交、推送!

4. pull 拉取远程库到本地库

如果此时我们在远程库手动更改了代码,此时要把项目pull到本地,得到最新的更改版本!

在远程仓库中添加代码

在末尾添加一行代码,此时本地库和远程库的就不同,需要重新拉取pull到本地库,获得最新版本

package com.zl;



public class DaoService {
    public static void main(String[] args) {
        System.out.println("Hello World");
        System.out.println("Hello World");
        System.out.println("我是新增加的代码");
    }
}

选择Git---》pull进行拉取 

根据前面我们push时定义的仓库地址别名进行拉取

成功拉取:如果出现问题,多提交几次

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

5. clone 克隆远程库到本地

假如此时本地没有git-demo项目,或者说我们把这个项目从本地删除了,此时可以进行克隆

注:pull是原来有这个仓库(项目),拉取仓库中的代码到本地,相当于更新代码的内容;而clone是原来什么都没有,把整个项目clone下来!

输入远程仓库的地址, 并确定拉取的项目放在本地的那个位置

当然我们也可以在打开IDEA的时候进行clone,最终界面是一样的