当前位置: 首页 > news >正文

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

目录

 

一: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,最终界面是一样的

相关文章:

  • C语言指针链表
  • 全网最完整,接口测试总结彻底打通接口自动化大门,看这篇就够了......
  • 【JVM虚拟机面试宝典】JVM的内存结构是怎么样的?在JVM中会发生内存溢出的区域有那些?— day06
  • C++ string类
  • 细数那些惊艳一时的 CSS 属性
  • 【C语言】你真的了解结构体吗
  • 可做题2(矩阵快速幂,乘法逆元,exgcd)
  • Mysql用户权限分配详解
  • 一文7个步骤从0到1教你搭建Selenium 自动化测试环境
  • 【网络安全工程师】从零基础到进阶,看这一篇就够了
  • 【C陷阱与缺陷】----语法陷阱
  • 解忧杂货铺(五续集):用了无法离开的网站资源
  • 功能测试转型测试开发年薪27W,又一名功能测试摆脱点点点,进了大厂
  • iOS 紧急通知
  • 艹,终于在8226上把灯点亮了
  • SegmentFault for Android 3.0 发布
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 10个最佳ES6特性 ES7与ES8的特性
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • AWS实战 - 利用IAM对S3做访问控制
  • conda常用的命令
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • 不上全站https的网站你们就等着被恶心死吧
  • 从零开始的无人驾驶 1
  • 番外篇1:在Windows环境下安装JDK
  • 飞驰在Mesos的涡轮引擎上
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 每天10道Java面试题,跟我走,offer有!
  • 使用 Docker 部署 Spring Boot项目
  • 用jQuery怎么做到前后端分离
  • 正则表达式-基础知识Review
  • ​【已解决】npm install​卡主不动的情况
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)程序员技术练级攻略
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net core 控制台应用程序读取配置文件app.config
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET成年了,然后呢?
  • .net反编译工具
  • @Bean注解详解
  • []error LNK2001: unresolved external symbol _m
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • [C# WPF] 如何给控件添加边框(Border)?
  • [Codeforces] probabilities (R1600) Part.1
  • [HTTP]HTTP协议的状态码