git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)

本文是根据以下视频及网上总结进行更新后的介绍git使用的博文。包含了git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容。

笔记来源:【尚硅谷】5h打通Git全套教程IDEA版(涵盖GitHub\Gitee码云\GitLab)

文章目录

  • 初识 Git
    • 0、内容介绍
      • Git
      • GitHub
      • Gitee 码云
      • GitLab
    • 1、Git 概述
      • 1.1、何为版本控制?
      • 1.2、为什么需要版本控制?
      • 1.3、版本控制工具
        • 集中式版本控制工具
        • 分布式版本控制工具
      • 1.4、Git 简史
      • 1.5、Git 工作机制
      • 1.6、Git 和代码托管中心
    • 2、Git 安装
    • 3、Git 常用命令
      • 3.1、设置用户签名
      • 3.2、初始化本地库
      • 3.3、查看本地库状态
      • 3.4、添加暂存区
      • 3.5、提交至本地库
      • 3.6、修改文件
      • 3.7、历史版本
        • 查看历史版本
        • 版本穿梭
    • 4、Git 分支操作
      • 4.1、什么是分支
      • 4.2、分支的好处
      • 4.3、分支的操作
        • 创建分支、查看分支
        • 切换分支
        • 合并分支
        • 创建分支和切换分支图解
    • 5、Git 团队协作机制
      • 5.1、团队内协作
      • 5.2、跨团队协作
    • 6、GitHub 操作
      • 6.1、创建远程仓库
      • 6.2、远程仓库操作
        • 创建远程仓库别名
        • 推送本地分支到远程仓库
        • 拉取远程仓库到本地
        • 克隆远程仓库到本地
      • 6.3、团队内协作
      • 6.4、跨团队协作
      • 6.5、SSH 免密登录
    • 7、IDEA 集成 Git
      • 7.1、配置 Git 忽略文件
      • 7.2、定位 Git 程序
      • 7.3、初始化本地库
      • 7.4、添加至暂存区
      • 7.5、提交到本地库
      • 7.6、切换版本
      • 7.7、创建分支、切换分支
      • 7.8、合并分支
      • 7.9、冲突合并
    • 8、IDEA 集成 GitHub
      • 8.1、设置 GitHub 账号
      • 8.2、分享工程到 GitHub
      • 8.3、Push 推送本地分支到远程库
      • 8.4、Pull 拉取远程库到本地
      • 8.5、Clone 克隆远程库到本地
    • 9、国内代码托管中心**-**码云
      • 9.1、创建远程库
      • 9.2、删除远程库
      • 9.3、IDEA 集成码云
      • 9.4、分享工程到 Gitee
      • 9.5、推送本地分支到远程库
      • 9.6、拉取远程库到本地
      • 9.7、克隆远程库到本地
      • 9.8、码云复制 GitHub 项目
    • 10、自建代码托管平台 - GitLab
      • 10.1、GitLab 简介
      • 10.2、GitLab 官网地址
      • 10.3、GitLab 安装
        • 服务器准备
        • 安装包准备
        • 编写安装脚本
        • 初始化 GitLab 服务
        • 启动 GitLab 服务
        • 使用浏览器访问 GitLab
        • GitLab 创建远程库
        • IDEA 集成 GitLab

初识 Git

0、内容介绍

Git

  • Git 介绍:分布式版本控制工具 VS 集中式版本控制工具
  • Git 安装:基于官网发布的最新版本 2.31.1 安装讲解
  • Git 命令:基于开发案例详细讲解了git的常用命令
  • Git 分支:分支特性、分支创建、分支转换、分支合并、代码合并冲突解决
  • IDEA 集成 Git

GitHub

  • 创建远程库
  • 代码推送 Push
  • 代码拉取 Pull
  • 代码克隆 Clone
  • SSH 免密登录
  • IDEA 集成 GitHub

Gitee 码云

  • 创建远程库
  • IDEA 集成 GitHub
  • 码云连接 GitHub 进行代码的复制和迁移

GitLab

  • GitLab 服务器的搭建和部署
  • IDEA 集成 GitLab

1、Git 概述

  • 官网地址:http://git-scm.com/
  • --everything is local:分布式特性

Git 是一个免费的、开源分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目

Git 易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性

其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具

1.1、何为版本控制?

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统

版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第1张图片

1.2、为什么需要版本控制?

个人开发过渡到团队协作

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第2张图片

1.3、版本控制工具

集中式版本控制工具

CVS、SVN(Subversion)、VSS…

集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法

这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易

事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第3张图片

总结

  • 优点:可以看到其他人正在做些什么;开发者权限控制
  • 缺点:中央服务器的单点故障,无法提交历史记录

分布式版本控制工具

Git、Mercurial、Bazaar、Darcs…

像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第4张图片

优点

  • 版本控制在本地,可以断网开发
  • 保存完整项目,包含历史记录,更安全

1.4、Git 简史

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第5张图片
GitHub就是远程库

1.5、Git 工作机制

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第6张图片

暂存区和本地库均是在git生成的.git文件中

  • 工作区(代码存放在磁盘的位置)写代码,通过git add命令添加至暂存区
  • 暂存区临时存储代码,通过git commit提交至本地库,暂存区的文件可以删除
  • 本地库记录历史记录、历史版本,通过git push推送至远程库
  • 流程最终缺少将本地库push 到远程库

1.6、Git 和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库

  • 局域网
    • ☑️ GitLab(公司内部局域网内进行非开源软件版本控制)
  • 互联网
    • ☑️ GitHub(外网-git官方的代码托管中心)
    • ☑️ Gitee码云(国内网站)

2、Git 安装


官网地址:https://git-scm.com/

查看 GNU 协议,可以直接点击下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第7张图片

选择 Git 安装位置,要求是非中文并且没有空格的目录,然后下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第8张图片

Git 选项配置,推荐默认设置,然后下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第9张图片

Git 安装目录名,不用修改,直接点击下一步

image-20210916233310729

Git 的默认编辑器,建议使用默认的 Vim 编辑器,然后点击下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第10张图片

默认分支名设置,选择让 Git 决定,分支名默认为 master,下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第11张图片

修改 Git 的环境变量,选第一个,不修改环境变量,只在 Git Bash 里使用 Git

image-20210916233458071

选择后台客户端连接协议,选默认值 OpenSSL,然后下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第12张图片

配置 Git 文件的行末换行符,Windows 使用 CRLF,Linux 使用 LF,选择第一个自动转换,然后继续下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第13张图片

选择 Git 终端类型,选择默认的 Git Bash 终端,然后继续下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第14张图片

选择 Git pull 合并的模式,选择默认,然后下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第15张图片

选择 Git 的凭据管理器,选择默认的跨平台的凭据管理器,然后下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第16张图片

其他配置,选择默认设置,然后下一步

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第17张图片

实验室功能,技术还不成熟,有已知的 bug,不要勾选,然后点击右下角的 Install 按钮,开始安装 Git

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第18张图片

点击 Finsh 按钮,Git 安装成功!

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第19张图片

右键任意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第20张图片

在 Git Bash 终端里输入 git --version 查看 git 版本,如图所示,说明 Git 安装成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第21张图片

3、Git 常用命令

命令 作用
git config user.name 用户名 设置用户签名
git config user.email 邮箱 设置用户签名
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加至暂存区
git commit -m "日志信息" 文件名 提交至本地库
git reflog 查看历史记录
git reset --hard 版本号 版本穿梭

3.1、设置用户签名

1)基本语法

git config --global user.name 用户名
git config --global user.email 邮箱

2)案例实操

不一定用真实的name和email,用于区分不同操作者身份

全局范围的签名设置

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第22张图片

上图展示在windows的家目录项中查看,用户签名’.gitconfig’是否生效
说明:

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的

Git 首次安装必须设置一下用户签名,否则无法提交代码

‼️ 注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系

3.2、初始化本地库

1)基本语法
如果需要用git管理一个本地目录,需要用git获取git的管理权,即初始化

git init

2)案例实操
在window的gui中操作,进入需要初始化的目录,右键–>git bash here

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第23张图片

3.3、查看本地库状态

1)基本语法

git status

2)案例实操

新增文件前

“On branch master”代表当前本地库是在master分支中,在git软件安装时选择用git决定默认分支名字,默认就是master

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第24张图片

新增文件后

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第25张图片

3.4、添加暂存区

1)基本语法

git add 文件名

2)案例实操

红色表示仍在工作区,修改尚未被追踪;绿色表示已添加至暂存区,修改被追踪

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第26张图片

使用命令,删除暂存区该文件(只是删除暂存区,不影响工作区)

git rm --cached hello.txt

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第27张图片

3.5、提交至本地库

1)基本语法

# -m 表示添加一个版本日志信息,不写此参数也会打开日志信息的文件框。一般带参数
git commit -m "日志信息" 文件名

2)案例实操

正常操作

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第28张图片

查看版本命令:

git reflog:查看精简版日志信息,2664582是前7位精简的版本号,HEAD->master代表指针指向master分支,版本为“测试commit”

git log:查看详细日志信息,查看版本信息

-m参数时

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第29张图片

如果强制退出

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第30张图片

3.6、修改文件

案例实操

利用vim打开并在insert模式下修改hello.txt文件后

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第31张图片

git 里是按照行维护文件的,所以修改内容其实就是之前的行删除,修改过后的行添加进来

因此在commit之后提示信息1 insertion(+), 1 deletion(-)

3.7、历史版本

查看历史版本

1)基本语法

# 查看精简版本信息
git reflog
# 查看详细版本信息
git log

2)案例实操

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第32张图片

版本穿梭

1)基本语法

git reset --hard 版本号

2)案例实操

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第33张图片

文件验证当前版本号

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第34张图片

在.git文件夹中有一个HEAD文件,利用notepad++打开之后“ref: refs/heads/master”表明指针指向的时master的分支,但是如何知道是在哪个版本呢?

在HEAD文件的同级目录下查看“refs”目录–>"heads"目录–>master文件,打开后可以看到版本号,说明了指针指向的master分支及对应的版本号

Git 切换版本,底层其实是移动的 HEAD 指针,具体原理如下图所示:head指针指向master分支,master指针指向版本,通过master指针来实现版本穿梭功能

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第35张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第36张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第37张图片

4、Git 分支操作

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第38张图片
一个公司会有多个服务器,客户使用的时线上服务器,测试使用测试服务器,软件开发使用生产服务器,不同的服务器上的代码刚开始时一致的

4.1、什么是分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本(分支底层其实也是指针的引用)

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第39张图片
master主线分支将代码引出多条分支进行开发,其他分支开发结束后再合并到主线分支,上图中的hot fix代表热修,是指紧急修复

4.2、分支的好处

同时并行推进多个功能开发,提高开发效率

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可

4.3、分支的操作

命令 作用
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支

创建分支、查看分支

1)基本语法

git branch 分支名
git branch -v

2)案例实操

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第40张图片
创建一个hot-fix的分支

切换分支

1)基本语法

git checkout 分支名

2)案例实操

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第41张图片

合并分支

1)基本语法

git merge 分支名

2)案例实操

正常合并

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第42张图片
将hot-fix合并到master中,master的代码是没有修改,hot-fix是基于master进行的修改,因此合并后的代码就是hot-fix的内容

冲突合并

冲突产生的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第43张图片

master分支在“hello.txt”倒数第二行增加“master modify”,hot-fix分支在“hello.txt”倒数第一行增加“hot-fix modify”,在master分支下进行合并,就会报上图中内容,自动合并失败,因为在“hello.txt”中有冲突

解决冲突:vim hello.txt

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第44张图片
通过手动方式删除不想要的内容,包括“<<<<”,“===”等,删除行命令“dd”,后“:wq”保存退出

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第45张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第46张图片
merge操作时commit是不用写“hello.txt”的,否则无法进行合并,合并只会修改master的

创建分支和切换分支图解

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第47张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第48张图片

master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD 决定的。所以创建分支的本质就是多创建一个指针

  • HEAD 如果指向 master,那么我们现在就在 master 分支上
  • HEAD 如果指向 hotfix,那么我们现在就在 hotfix 分支上

所以切换分支的本质就是移动HEAD指针

5、Git 团队协作机制

5.1、团队内协作

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第49张图片
岳不群开发了华山剑法,开发好之后想要令狐冲完善下,岳不群就利用push命令推送到代码托管中心-远程库,令狐冲就可以将岳不群的远程库clone复制到自己本地库,修改修改就可以push到远程库,但是需要岳不群开权限来push代码。岳不群可以从远程库pull代码来更新岳不群的本地库

5.2、跨团队协作

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第50张图片
岳不群和令狐冲维护的远程库觉得太次,想要找东方不败改改,改成辟邪剑谱,东方不败不是华山派的,不可能说让岳不群开权限加入华山派,因此需要从华山派的远程库fork(叉过来)一份到自己的远程库中,东方不败从自己的远程库中clone到自己的本地库中来进行修改。
可以看到git都是在本地库中进行版本控制,所以称之为分布式版本控制
东方不败改成辟邪剑谱后,现将本地库的辟邪剑谱push到自己的远程库,东方不败需要发送pull request的请求,当然岳不群需要审核一下,审核过之后,就可以把东方不败的远程库代码和自己的远程库代码进行merge

6、GitHub 操作

  • GitHub 官网:https://github.com/

PS:全球最大同性交友网站,技术宅男的天堂,新世界的大门,你还在等什么?

账号 姓名 验证邮箱
atguiguyuebuqun 岳不群 [email protected]
atguigulinghuchong 令狐冲 [email protected]
atguigudongfang1 东方不败 [email protected]

6.1、创建远程仓库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第51张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第52张图片
一般远程库名字是和本地库名字是一致的;选择private也是可以的,但是不能超过5个人,公司一般建议搭建gitlab

点击“Create repository”后可以看到"HTTPS"和“SSH”的链接,复制"HTTPS"链接

6.2、远程仓库操作

命令 作用
git remote add 别名 远程地址 起别名
git remote -v 查看当前所有远程别名
git clone 远程地址 将远程仓库的内容克隆到本地
git pull 远程地址别名 远程分支名 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并
git push 别名 分支 推送本地分支上的内容到远程仓库

创建远程仓库别名

1)基本语法

链接太长的情况,可以给他起个别名,进行代码推送和拉取时可以通过别名操作

git remote -v
git remote add 别名 远程地址

git remote -v 查当前是否有别名

2)案例实操

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第53张图片
出现两次是因为进行拉取和推送时都可以使用这个别名进行

推送本地分支到远程仓库

1)基本语法

将某个分支push到远程库

git push 别名 分支

2)案例实操

由于 GitHub 外网的特殊原因,会有网络延迟,等待时间可能较长,属于正常现象。可能要多尝试几次,需要点耐心。当然你有工具除外

git push git-demo master

如果本地还没有过 SSH 免密登录操作(下面内容会详细介绍),则在执行命令后会弹出一个Connect to GitHub的提示框

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第54张图片

点击Sign in with your browser后会自动打开系统默认浏览器

如果你的 GitHub 尚未进行过任何 Git 相关授权,则会给出确认授权提示信息,点击Authorize GitCredentialManager进行授权即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第55张图片

接着会提示授权成功(如果在此之前已经对Git Credential Manager进行过授权,则直接提示此信息)

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第56张图片

成功推送本地分支至远程库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第57张图片

凭据管理器

在上述操作过程中,点击Authorize GitCredentialManager进行授权后,在 GitHub 设置页面的Application选项—Authorized OAuth Apps中可以查看到 Git Credential Manager的授权信息

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第58张图片

在上述过程前,本地凭据管理器中还没有任何身份凭证信息(没有 Git 和 GitHub 相关的凭据信息)

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第59张图片

执行过上述命令等操作后,本地凭据管理器中会出现 Git 相关凭据信息

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第60张图片

拉取远程仓库到本地

1)基本语法

git pull 别名 分支

2)案例实操

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第61张图片

克隆远程仓库到本地

1)基本语法:当创建的项目是public的,clone是不需要权限的

git clone 远程库地址

2)案例实操

首先获取需要克隆的远程库地址

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第62张图片

由于workspace下面已经存在一个同名的仓库地址,所以直接在workspace中键入命令会有错误提示信息

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第63张图片

这是因为,clone命令默认帮我们创建的一个远程仓库名称同名的文件夹,所以这里我删除了git-demo目录

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第64张图片

小结:clone 会做如下操作

  • 1、拉取代码
  • 2、初始化本地仓库
  • 3、创建别名(默认origin

6.3、团队内协作

如果项目之外成员想要将自己编写的代码推送至远程库,则会提示unable to access...403

image-20210919002334885

要想获取推送的权限,则需要该项目管理员对该成员进行邀请,将其添加至该项目中

1)邀请合作者,输入用户名,复制地址并发送给合作者

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第65张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第66张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第67张图片

2)合作者访问该链接,点击接受邀请,可以在其账号上看到该远程仓库

  • https://github.com/atguiguvueyue/git-demo/invitations

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第68张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第69张图片

接下来,就可以通过git命令对远程库进行克隆、拉取、提交、推送等操作了

6.4、跨团队协作

1)合作者视角

点击Fork,将其他项目“叉”到自己账号上

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第70张图片

自己账号上就有了该项目,可以清楚地看到该项目forked from xxx,即可对代码进行修改

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第71张图片

修改代码后,点击Pull requestsNew pull request,发起拉取请求

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第72张图片

查看修改内容,点击Create pull request,创建拉取请求

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第73张图片

填写请求信息及评论内容,点击Create pull request

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第74张图片

创建完成

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第75张图片

2)项目管理员视角

可以在该项目中查看到Pull requests有一条新的记录,可以点击下方提交信息进行查看

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第76张图片

想要看到合作者修改的具体内容,可以点击提交记录进行查看

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第77张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第78张图片

同时,可以对拉取请求进行审查和评论

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第79张图片

最后,审查通过就可以对拉取请求进行合并了,点击Merge pull request进行合并

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第80张图片

点击Confirm merge,确认合并

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第81张图片

合并成功之后,项目成员就可以看到修改的相关内容了

6.5、SSH 免密登录

我们可以看到远程仓库中还有一个 SSH 的地址,因此我们也可以使用 SSH 进行访问。 但需要添加SSH的密钥

1)基本语法

# -t指定加密算法,-C添加注释
ssh-keygen -t rsa -C 描述

2)案例实操

本地生成 SSH 密钥

键入命令,连敲三次回车即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第82张图片

进入~/.ssh目录,复制公钥信息

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第83张图片

GitHub 上添加公钥

未添加任何公钥之前,CodeSSH会有警告提示信息,表示目前 SSH 方式是没有权限的

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第84张图片

在 GitHub 的settingsSSH and GPG keys中,点击New SSH key添加一个公钥

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第85张图片

id_rsa.pub即公钥信息粘贴至Key中,Title随意,点击Add SSH key进行添加

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第86张图片

出现下列信息,说明添加成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第87张图片

验证 SSH免密登录 是否可用

进入git-demo项目,点开CodeSSH,发现已经没有警告提示信息了,表示可用

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第88张图片

复制 SSH 协议地址,使用clone命令克隆到本地,键入yes即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第89张图片

接下来就是修改内容、添加暂存区、提交本地库、推送远程库的操作了

这时候我们发现已经不再弹出登录授权的提示信息,就可以推送过去了

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第90张图片

查看远程库历史版本信息,确认推送成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第91张图片

至此,SSH 免密登录配置成功!

7、IDEA 集成 Git

7.1、配置 Git 忽略文件

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

问题2:怎么忽略?

1)创建忽略规则文件 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 	crash 	logs,  	see 

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

[core]
	excludesfile = C:/Users/Archimedes/git.ignore

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

7.2、定位 Git 程序

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第92张图片

7.3、初始化本地库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第93张图片

明显看到,文件颜色变红了,代表着未被追踪。说明 Git 已经检测到 git-test 下文件,但是文件尚未被添加至暂存区

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第94张图片

7.4、添加至暂存区

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第95张图片

添加完毕之后,可以看到文件颜色变绿了,代表文件被追踪。说明 Git 已将文件添加至暂存区,但是尚未提交本地库

srcmainjava下创建一个com.test.Test.java文件

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第96张图片

这是 IDEA 会自动检测到该文件,并提示是否需要将Test.java添加至暂存区

这里先Cancel,不直接Add单个文件,取而代之的是在整个项目上进行Add操作,这样整个项目下文件都可以被添加至暂存区

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第97张图片

这时会发现,Test.java文件变成绿色了,说明添加成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第98张图片

7.5、提交到本地库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第99张图片

点击Commit Diretory...之后,就可以看到暂存区的文件,输入日志信息就可以进行提交了

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第100张图片

提交完毕之后,文件颜色也随之发生改变,说明 Git 已将文件提交至本地库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第101张图片

7.6、切换版本

首先修改文件,观察到修改的文件颜色为蓝色,表示已修改状态,可以直接进行commit操作

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第102张图片

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

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第103张图片

选定某一版本,点击Checkout Reversion xxx,可以进行版本穿梭

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第104张图片

可以看到每次版本穿梭,HEAD指针的变化

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第105张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第106张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第107张图片

7.7、创建分支、切换分支

点击 IDEA 右下角masterNew Branch就可以创建分支了

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第108张图片

输入分支名,点击Create进行创建

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第109张图片

当然,也通过项目上右键GitNew Branch,或者右键GitBranchesNew Branch同理

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第110张图片

切换分支同理,右键或是右下角均可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第111张图片

7.8、合并分支

首先切换到hot-fix分支,修改内容后提交,再切换回master分支,同样在右下角选择我们需要合并的分支hot-fix,选择Merge Selected into Current,将hot-fix分支合并至master分支上

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第112张图片

发现内容已发生改变,并且查看历史版本也发生了变化

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第113张图片

7.9、冲突合并

首先,分别切换masterhot-fix都对Test.java内容进行修改并提交

master版本信息

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第114张图片

hot-fix版本信息

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第115张图片

可以观察到,历史版本发生了分叉。现在将hot-fix合并至master上,提示Conflicts,说明合并出现了冲突

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第116张图片

点击Merge进行手动合并

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第117张图片

解决完冲突后,会提示All changes have been processed. Save changes and finish merging,说明代码可以正常合并,点击Apply对手动合并的代码进行应用

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第118张图片

会发现文件颜色变为正常颜色,并且历史版本发生了改变,原来的两个分支合并成了一个

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第119张图片

8、IDEA 集成 GitHub

8.1、设置 GitHub 账号

通过账号密码设置

打开Settings,点击Log In via GitHub...

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第120张图片

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第121张图片

会自动打开浏览器,进行授权确认

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第122张图片

点击Authorize in GitHub后,会提示授权成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第123张图片

看到 IDEA 里新增了一条账号信息即为添加成功

image-20210919041945459

通过 Token 设置

点击Log In with Token...

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第124张图片

会弹出Add GitHubh Account框,输入我们在 GitHub 上创建的 Token 信息即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第125张图片

如果还没有生成过或者丢失了之前创建的 Token,可以直接点击Generate...进行自动生成,默认已勾好权限

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第126张图片

修改并确认无误后,点击Generate token即可进行生成

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第127张图片

Token 生成之后,只会在当前页面显示一次,需要及时复制保存下来

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第128张图片

将 Token 粘贴至输入框,点击Add Account即可添加

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第129张图片

最后别忘了,一定要点击ApplyOK对设置进行保存

image-20210919043630909

8.2、分享工程到 GitHub

我们一般会先在远程库创建一个Repository,再将本地库通过remote关联到远程库,最后进行版本推送

或者是先在远程库创建一个Repository,再通过clone将远程库克隆至本地,最后进行版本推送

而在 IDEA 中,可以将上述步骤合成一个步骤,即通过Share将本地库分享至 GitHub 上,非常便捷

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第130张图片

填写完信息后,点击Share按钮,IDEA 会自动帮我们创建和初始化远程库,并将本地库推送至远程库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第131张图片

查看 GitHub 是否存在该仓库,以验证是否分享成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第132张图片

在分享过程中,可能会出现如下报错:成功创建远程仓库,但是初始化推送失败。这时就需要进行手动Push的操作了

image-20210919045442918

8.3、Push 推送本地分支到远程库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第133张图片

这里默认使用https协议进行推送,因为网络原因,很有可能推送失败

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第134张图片

这是可以修改远程连接方式,点击Define remote设置新的远程别名

image-20210919050127937

然后会弹出一个重新定义远程方式的界面,这里使用 SSH 协议的远程地址即可(注意:不要与原来的别名重复)

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第135张图片

点击OK后,可以重新选择远程别名,这里改为我们刚刚定义的 SSH 协议的别名:origin-ssh

image-20210919050608057

查看 GitHub 上历史版本修改内容,推送成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第136张图片

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

8.4、Pull 拉取远程库到本地

首先先修改远程库代码,然后进行如下操作

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第137张图片

选择 SSH 协议的别名,点击Pull进行代码拉取

image-20210919051654972

查看本地库代码易发生变化,并且历史版本也有了相关记录,说明代码拉取成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第138张图片

8.5、Clone 克隆远程库到本地

关闭项目,在 IDEA 选择页面,点击Get From VCS

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第139张图片

填写需要克隆的远程仓库地址和本地仓库地址,点击Clone进行克隆

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第140张图片

等待克隆完成

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第141张图片

初次进入项目,会提示是否信任并打开此 Maven 工程,一般选择Trust Project

如果勾选Trust projects in xxx,则在此工作空间下所有新增项目都将被信任,不会再提示

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第142张图片

打开项目,确认Test.java内容无误,历史版本记录正常

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第143张图片

9、国内代码托管中心**-**码云

众所周知,GitHub 服务器在国外,使用 GitHub 作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内的项目托管网站-码云

码云是开源中国推出的基于 Git 的代码托管服务中心,网址是 https://gitee.com/,使用方式跟 GitHub 一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择

9.1、创建远程库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第144张图片

输入仓库名称,路径会自动与仓库名称保持一致,一般不改。选择开源,点击创建即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第145张图片

创建完毕会自动跳转到该项目界面,复制下列地址以备用

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第146张图片

9.2、删除远程库

打开项目管理仓库设置删除仓库,点击删除仓库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第147张图片

输入确认信息,点击确认删除

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第148张图片

输入密码,进行二次确认,点击验证,即可删除成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第149张图片

9.3、IDEA 集成码云

首先安装 Gitee 的插件

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第150张图片

安装完成之后,点击Apply会刷新Settings选项,打开Version Control,多了一个Gitee选项

这里同样有两种方式,可以通过账号密码登录,也可以通过Token登录,操作同 IDEA 集成 GitHub

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第151张图片

输入完账号密码,点击Log In即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第152张图片

如果输入无误,便会在界面中展示账号信息,点击OK保存

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第153张图片

9.4、分享工程到 Gitee

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第154张图片

如果远程仓库已存在该名称的项目,则会提示存在同名仓库无法删除,需要先删除刚刚我们创建的git-test仓库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第155张图片

提示分享成功

image-20210919144509857

查看 Gitee,确认仓库创建成功并且推送成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第156张图片

9.5、推送本地分支到远程库

修改内容,可以在左侧导航栏Commit直接进行提交并推送

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第157张图片

同样可以自定义远程地址别名,点击Push进行推送

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第158张图片

查看 Gitee 仓库历史版本记录,确认推送成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第159张图片

9.6、拉取远程库到本地

直接在 Gitee 上修改Test.java内容后,IDEA 中进行Pull即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第160张图片

选择我们指定的别名和分支,点击Pull进行拉取

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第161张图片

查看Test.java即历史版本发生了变化,说明拉取成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第162张图片

9.7、克隆远程库到本地

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第163张图片

9.8、码云复制 GitHub 项目

导入仓库

点击从 GitHub / GitLab 导入仓库

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第164张图片

输入 GitHub 仓库地址,Gitee 会自动帮我们反填仓库名称及路径信息,修改为开源或私有,点击导入

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第165张图片

等待片刻

导入成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第166张图片

强制同步

如果后续该工程在 GitHub 上进行了修改,可以直接点击,刷新图标进行强制同步

image-20210919151705859

需要注意的是强制更新会覆盖当前仓库,这里点击确认即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第167张图片

查看历史版本记录,确认同步成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第168张图片

10、自建代码托管平台 - GitLab

10.1、GitLab 简介

GitLab 是由 GitLabInc. 开发,使用 MIT 许可证的基于 网络的 Git 仓库管理工具,且具有 wiki 和 issue 跟踪功能。使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务

GitLab 由乌克兰程序员 DmitriyZaporozhets 和 ValerySizov 开发,它使用 Ruby 语言写成。后来,一些部分用 Go 语言重写。截止 2018 年 5 月,该公司约有 290 名团队成员,以及 2000 多名开源贡献者。GitLab 被 IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX 等组织使用

10.2、GitLab 官网地址

  • 官网地址:https://about.gitlab.com/
  • 安装说明:https://about.gitlab.com/installation/

10.3、GitLab 安装

服务器准备

准备一个系统为 CentOS7 以上版本的服务器,要求:内存 4G,磁盘 50G

关闭防火墙,并且配置好主机名和 IP,保证服务器可以上网

此教程使用虚拟机:主机名:gitlab-server IP 地址:192.168.6.200

安装包准备

Yum 在线安装 gitlab-ce 时,需要下载几百 M 的安装文件,非常耗时,所以最好提前把所需 RPM 包下载到本地,然后使用离线 rpm 的方式安装

下载地址:

  • https://packages.gitlab.com/gitlab

注:资料里提供了此 rpm 包,直接将此包上传到服务器/opt/module目录下即可

编写安装脚本

安装 GitLab 步骤比较繁琐,因此我们可以参考官网编写 GitLab 的安装脚本

vim gitlab-install.sh

将下列脚本内容复制到创建的gitlab-install.sh文件中

sudo rpm -ivh /opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm
sudo yum install -y
curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
sudo yum install -y postfix
sudo service postfix start
sudo chkconfig postfix on
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce

给脚本增加执行权限

chmod +x gitlab-install.sh

执行脚本变绿,说明具备执行权限

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第169张图片

然后执行该脚本,开始安装 gitlab-ce。注意一定要保证服务器可以上网

./gitlab-install.sh

耐心等待片刻

image-20210919160034134

脚本执行成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第170张图片

初始化 GitLab 服务

执行以下命令初始化 GitLab 服务

gitlab-ctl reconfigure

过程大概需要几分钟,耐心等待…

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第171张图片

出现gitlab Reconfigured!说明 GitLab 服务初始化成功

启动 GitLab 服务

执行以下命令启动 GitLab 服务

gitlab-ctl start

如需停止,执行

gitlab-ctl stop

服务启动成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第172张图片

使用浏览器访问 GitLab

使用主机名或者 IP 地址即可访问 GitLab 服务,使用主机名访问需要提前配置一下 windows 的 hosts 文件

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第173张图片

首次登陆之前,需要修改下 GitLab 提供的 root 账户的密码,要求 8 位以上,包含大小写子母和特殊符号。因此我们修改密码为 Atguigu.123456,然后使用修改后的密码登录 GitLab

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第174张图片

接下来,就可以用刚才修改的账号密码进行登录了

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第175张图片

登录成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第176张图片

GitLab 创建远程库

我这里以官网 GitLab 为例,官网地址:https://gitlab.com/

官网还提供了 GitLab 自身的项目源码:https://gitlab.com/gitlab-org/gitlab

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第177张图片

点击New project/repositoryCreate a project进行 GitLab 仓库的创建

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第178张图片

填写项目信息后,点击Create project即可

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第179张图片

创建成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第180张图片

IDEA 集成 GitLab

1)安装 GitLab 插件

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第181张图片

2)设置 GitLab 插件

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第182张图片

出现相关信息,说明添加成功

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第183张图片

3)push 本地代码到 GitLab 远程库

我们首先添加一个远程库别名

点击GitManage Remotes

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第184张图片

点击+号,自定义一个远程别名及对应远程库地址,点击OK

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第185张图片

出现刚刚的记录,说明添加远程别名成功,点击OK

git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)_第186张图片

只要 GitLab 的远程库连接定义好以后,对 GitLab 远程库进行 pull 和 clone 的操作和 Github、码云一致,此处不再赘述

你可能感兴趣的:(SVN及git使用,git,github,gitee,gitlab,IDEA)