Git(IDEA版本、GitHub,gitee)

目录

  • 前言
  • 1 初始Git
    • 1.1 版本控制工具
    • 1.2 Git工作机制
    • 1.3 Git安装
  • 2 Git常用命令(本地库)
  • 3 Git分支
    • ①什么是分支
    • ②操作
    • ③分支合并冲突
  • 4 团队协作
    • ①团队内协作
    • ②跨团队协作
  • 5 GitHub操作
    • ①创建远程仓库
    • ② 远程仓库操作
    • ③ 邀请团队合作具体操作步骤
      • 1)选择邀请合作者
      • 2)填入想要合作的人
      • 3)复制地址并通过微信钉钉等方式发送给该用户
      • 4)在atguigulinghuchong这个账号中的地址栏复制收到邀请的链接,点击接受邀请。
      • 5)成功之后可以在atguigulinghuchong这个账号上看到git-Test的远程仓库。
      • 6)令狐冲可以修改内容并push到远程仓库。
      • 7)回到atguiguyueyue的GitHub远程仓库中可以看到,最后一次是lhc提交的。
    • ④跨团队协作
      • 1)将远程仓库的地址复制发给邀请跨团队协作的人,比如东方不败。
      • 2)在东方不败的GitHub账号里的地址栏复制收到的链接,然后点击Fork将项目叉到自己的本地仓库。
      • 3)东方不败就可以在线编辑叉取过来的文件。
      • 4)编辑完毕后,填写描述信息并点击左下角绿色按钮提交。
      • 5)接下来点击上方的Pull请求,并创建一个新的请求。
      • 6)回到岳岳GitHub账号可以看到有一个Pull request请求。
      • 7)如果代码没有问题,可以点击Merge pull reque合并代码。
    • ⑤SSH免密登录
  • 6 IDEA集成Git
    • ①配置Git 忽略文件
      • 1)为什么
      • 2)如何配置
    • ②定位Git程序
    • ③初始化本地库
    • ④添加到暂存区
    • ⑤ 提交到本地库
    • ⑥ 切换版本
    • ⑦创建分支
    • ⑧ 切换分支
    • ⑨ 合并分支
    • ⑩解决冲突
  • 7 IDEA集成GitHub
    • ①设置GitHub账号
    • ②分享工程到GitHub
    • ③push推送本地库到远程库
    • ④ pull拉取远程库到本地库
    • ⑤clone克隆远程库到本地
  • 8 IDEA集成Gitee
    • ①码云创建远程库
    • ②安装插件
    • ③IDEA连接码云
    • ④码云复制 GitHub项目
  • 9 GitLab(未完成,非常用)
    • ①准备服务器
    • ② 安装gitlab
    • ③初始化并启动

前言

感谢尚硅谷提供的免费课程资源,让我们来进行git知识的学习吧。

1 初始Git

1.1 版本控制工具

  • 集中式版本控制工具

    CVS、SVN(Subversion)、VSS……

  • 分布式版本控制工具

    Git、Mercurial、Bazaar、Darcs……

1.2 Git工作机制

Git(IDEA版本、GitHub,gitee)_第1张图片
代码托管中心
代码托管中心负责维护远程库,让团队成员可以彼此协作。

  • 局域网

Gitlab:如果有特殊需求不能使用外网的代码托管中心,可以在局域网内搭建自己的代码托管中心服务器。

  • Internet

GitHub:国外网站,有非常多优秀的开源项目托管代码,但是从国内访问很慢。

码云:国内的代码托管中心,在国内互联网开发圈子中的地位举足轻重。

Git(IDEA版本、GitHub,gitee)_第2张图片
Git(IDEA版本、GitHub,gitee)_第3张图片

1.3 Git安装

高速下载链接:https://registry.npmmirror.com/binary.html?path=git-for-windows/

Git(IDEA版本、GitHub,gitee)_第4张图片

Git(IDEA版本、GitHub,gitee)_第5张图片
Git(IDEA版本、GitHub,gitee)_第6张图片
Git(IDEA版本、GitHub,gitee)_第7张图片

2 Git常用命令(本地库)

命令名称 作用
git config --global user.name 用户名 设置用户签名(查看谁提交的代码,必须首先设置)
git config --global user.email 邮箱 设置用户签名
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit -m"日志信息" 文件名 提交到本地库
git reflog 查看版本信息
git log 查看版本详细信息
git reset --hard 版本号 版本穿梭
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址 起别名
git push 别名 分支 推送本地分支上的内容到远程仓库
git clone 远程地址 将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

Git底层工作原理
其实就是指针移动
Git(IDEA版本、GitHub,gitee)_第8张图片

3 Git分支

Git(IDEA版本、GitHub,gitee)_第9张图片

①什么是分支

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

②操作

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

③分支合并冲突

  • 默认分支master下有一个hello.txt文件,hot-fix分支下也有hello.txt文件,而且在同一文件位置。当我们修改hot-fix分支下的hello.txt文件,master分支下没有修改时,在master分支下合并hot-fix分支,不会产生冲突。
  • 当master分支下也修改了hello.txt文件,这时hot-fix分支和master分支进行合并时就会出现代码合并冲突。原因在于git不知道是将master分支下修改的作为修改后的还是将hot-fix分支下修改的作为修改后的。这个时候就会产生代码冲突,冲突产生的表现
    后面状态为 MERGING
    具体理解可见下图。
    Git(IDEA版本、GitHub,gitee)_第11张图片
    这个时候就需要进行手动合并,即用户自己判断到底如何进行修改合并。
  1. 编辑有冲突的文件,删除特殊符号,决定要使用的内容
    特殊符号:
    :<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix hello git!
  2. 添加到暂存区
  3. 执行提交(注意:此时使用git commit 命令时不能带文件名)

图解原理
Git(IDEA版本、GitHub,gitee)_第12张图片

master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD
决定的。所以创建分支的本质就是多创建一个指针。
HEAD 如果指向master,那么我们现在就在master 分支上。
HEAD 如果执行hotfix,那么我们现在就在hotfix 分支上。

4 团队协作

①团队内协作

Git(IDEA版本、GitHub,gitee)_第13张图片

②跨团队协作

Git(IDEA版本、GitHub,gitee)_第14张图片

5 GitHub操作

①创建远程仓库

Git(IDEA版本、GitHub,gitee)_第15张图片

Git(IDEA版本、GitHub,gitee)_第16张图片

② 远程仓库操作

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

Git(IDEA版本、GitHub,gitee)_第17张图片
推送后
Git(IDEA版本、GitHub,gitee)_第18张图片

③ 邀请团队合作具体操作步骤

没有进入团队之前,只能克隆,不需要权限。但是假如我们需要进行提交自己更改的版本,那么就需要我们在此之前加入团队,这样才可以进行后续操作。

1)选择邀请合作者

Git(IDEA版本、GitHub,gitee)_第19张图片

2)填入想要合作的人

Git(IDEA版本、GitHub,gitee)_第20张图片

3)复制地址并通过微信钉钉等方式发送给该用户

复制内容如下:https://github.com/atguiguyueyue/git-shTest/invitations
在这里插入图片描述

4)在atguigulinghuchong这个账号中的地址栏复制收到邀请的链接,点击接受邀请。

Git(IDEA版本、GitHub,gitee)_第21张图片

5)成功之后可以在atguigulinghuchong这个账号上看到git-Test的远程仓库。

Git(IDEA版本、GitHub,gitee)_第22张图片

6)令狐冲可以修改内容并push到远程仓库。

7)回到atguiguyueyue的GitHub远程仓库中可以看到,最后一次是lhc提交的。

Git(IDEA版本、GitHub,gitee)_第23张图片

④跨团队协作

1)将远程仓库的地址复制发给邀请跨团队协作的人,比如东方不败。

Git(IDEA版本、GitHub,gitee)_第24张图片

2)在东方不败的GitHub账号里的地址栏复制收到的链接,然后点击Fork将项目叉到自己的本地仓库。

在这里插入图片描述
叉入中…
Git(IDEA版本、GitHub,gitee)_第25张图片

叉成功后可以看到当前仓库信息。
Git(IDEA版本、GitHub,gitee)_第26张图片

3)东方不败就可以在线编辑叉取过来的文件。

Git(IDEA版本、GitHub,gitee)_第27张图片

4)编辑完毕后,填写描述信息并点击左下角绿色按钮提交。

Git(IDEA版本、GitHub,gitee)_第28张图片

5)接下来点击上方的Pull请求,并创建一个新的请求。

在这里插入图片描述

Git(IDEA版本、GitHub,gitee)_第29张图片

Git(IDEA版本、GitHub,gitee)_第30张图片

6)回到岳岳GitHub账号可以看到有一个Pull request请求。

Git(IDEA版本、GitHub,gitee)_第31张图片
进入到聊天室,可以讨论代码相关内容。
Git(IDEA版本、GitHub,gitee)_第32张图片
Git(IDEA版本、GitHub,gitee)_第33张图片

7)如果代码没有问题,可以点击Merge pull reque合并代码。

在这里插入图片描述

⑤SSH免密登录

我们可以看到远程仓库中还有一个SSH的地址,因此我们也可以使用SSH进行访问。
Git(IDEA版本、GitHub,gitee)_第34张图片
具体操作如下:

--进入当前用户的家目录 
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master) 
$ cd 

--删除.ssh目录 
$ rm -rvf .ssh removed '.ssh/known_hosts'

--运行命令生成.ssh秘钥目录[注意:这里-C这个参数是大写的C
$ ssh-keygen -t rsa -C atguiguyueyue@aliyun.com 

Git(IDEA版本、GitHub,gitee)_第35张图片

复制id_rsa.pub文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keys

Git(IDEA版本、GitHub,gitee)_第36张图片

Git(IDEA版本、GitHub,gitee)_第37张图片

Git(IDEA版本、GitHub,gitee)_第38张图片
因为如果我们使用https这个链接的话,每次发布的时候都需要进行登录。但是我们使用ssh登录之后就不需要了。

6 IDEA集成Git

①配置Git 忽略文件

1)为什么

有些文件与项目部署没有关系。比如说下图中的,所以我们设置一个忽略文件模板来提交推送的时候忽略这些文件。
Git(IDEA版本、GitHub,gitee)_第39张图片
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 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 
  1. 在 .gitconfig文件中引用忽略配置文件(此文件在 Windows的家目录中)
[core]
	excludesfile = C:/Users/hxld/git.ignore

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

②定位Git程序

Git(IDEA版本、GitHub,gitee)_第40张图片
Git(IDEA版本、GitHub,gitee)_第41张图片

③初始化本地库

Git(IDEA版本、GitHub,gitee)_第42张图片
选择要创建Git本地仓库的工程 。
Git(IDEA版本、GitHub,gitee)_第43张图片

④添加到暂存区

右键点击项目选择Git -> Add将项目添加到暂存区 。
Git(IDEA版本、GitHub,gitee)_第44张图片

⑤ 提交到本地库

Git(IDEA版本、GitHub,gitee)_第45张图片
Git(IDEA版本、GitHub,gitee)_第46张图片

⑥ 切换版本

Git(IDEA版本、GitHub,gitee)_第47张图片
Git(IDEA版本、GitHub,gitee)_第48张图片

⑦创建分支

Git(IDEA版本、GitHub,gitee)_第49张图片

⑧ 切换分支

在IDEA窗口的右下角,切换到 master分支 。
Git(IDEA版本、GitHub,gitee)_第50张图片

⑨ 合并分支

在IDEA窗口的右下角,将 hot-fix分支合并到当前 master分支。
Git(IDEA版本、GitHub,gitee)_第51张图片
Git(IDEA版本、GitHub,gitee)_第52张图片

⑩解决冲突

Git(IDEA版本、GitHub,gitee)_第53张图片
Git(IDEA版本、GitHub,gitee)_第54张图片
Git(IDEA版本、GitHub,gitee)_第55张图片
在这里插入图片描述

7 IDEA集成GitHub

①设置GitHub账号

Git(IDEA版本、GitHub,gitee)_第56张图片
然后去GitHub账户 上设置 token。
Git(IDEA版本、GitHub,gitee)_第57张图片
Git(IDEA版本、GitHub,gitee)_第58张图片
Git(IDEA版本、GitHub,gitee)_第59张图片

②分享工程到GitHub

Git(IDEA版本、GitHub,gitee)_第60张图片

Git(IDEA版本、GitHub,gitee)_第61张图片
注意错误:
解决上传到github报错Successfully created project ‘GitTest’ on GitHub, but initial push failed
通过IDEA上传代码到GitHub上可是有时候会碰到这样的问题。
当我们选择VCS->Import into Version Control->Share Project on GitHub提交代码。点击OK。然后就跳出了这样的信息:
Can’t finish GitHub sharing process
Successfully created project ‘GitTest’ on GitHub, but initial push failed:
unable to access ‘https://github.com/Prize-winner/GitTest.git/’: The requested URL returned error: 403
原来是github没有配置的原因,解决办法如下。

  1. 在你安装Git的目录下找到git-bash这个可执行文件
  2. 设置用户名和邮箱地址,如下图:
    在这里插入图片描述

③push推送本地库到远程库

Git(IDEA版本、GitHub,gitee)_第62张图片

Git(IDEA版本、GitHub,gitee)_第63张图片

注意因为网络的问题,当我们设置了ssh免密登录之后,我们可以设置使用ssh免密登录进行github操作。(IDEA默认使用的是https协议)。
Git(IDEA版本、GitHub,gitee)_第64张图片

④ pull拉取远程库到本地库

右键点击项目,可以将远程仓库的内容pull到本地仓库 。
Git(IDEA版本、GitHub,gitee)_第65张图片
Git(IDEA版本、GitHub,gitee)_第66张图片

⑤clone克隆远程库到本地

Git(IDEA版本、GitHub,gitee)_第67张图片
在这里插入图片描述
Git(IDEA版本、GitHub,gitee)_第68张图片
Git(IDEA版本、GitHub,gitee)_第69张图片

8 IDEA集成Gitee

①码云创建远程库

点击首页右上角的加号,选择下面的新建仓库。
Git(IDEA版本、GitHub,gitee)_第70张图片
注意目前gitee已经不支持直接设置为公开了,设置为公开需要在创建仓库后而且仓库不为空的状态下才可以设置为开源。
Git(IDEA版本、GitHub,gitee)_第71张图片

Git(IDEA版本、GitHub,gitee)_第72张图片

②安装插件

Git(IDEA版本、GitHub,gitee)_第73张图片
Git(IDEA版本、GitHub,gitee)_第74张图片

③IDEA连接码云

Idea连 接码云和 连 接 GitHub几乎一样,首先在 Idea里面创建一个工程,初始化 git工
程,然后将代码添加到暂存区,提交到本地库 ,这些步骤上面已经讲过,此处不再赘述。
Git(IDEA版本、GitHub,gitee)_第75张图片
Git(IDEA版本、GitHub,gitee)_第76张图片

Git(IDEA版本、GitHub,gitee)_第77张图片

④码云复制 GitHub项目

码云提供了直接复制GitHub项目的功能,方便我们做项目的迁移和下载。
Git(IDEA版本、GitHub,gitee)_第78张图片

Git(IDEA版本、GitHub,gitee)_第79张图片

9 GitLab(未完成,非常用)

①准备服务器

centos7 + 内存4GB+储存50GB
关闭防火墙,并且 配置好 主机名和 IP,保证服务器可以上网。

在外部访问CentOS中部署应用时,需要关闭防火墙。
关闭防火墙命令:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
关闭开机自启动:systemctl disable firewalld.service
开启开机启动:systemctl enable firewalld.service
配置好主机名和Ip。

linux查看本机ip的命令是“ifconfig”命令和“ip address”命令;
linux查看端口号的命令是“lsof -i:port”命令和“netstat -aptn”命令。

ip地址:192.168.119.131
使用xshell登录linux服务器
Git(IDEA版本、GitHub,gitee)_第80张图片
Git(IDEA版本、GitHub,gitee)_第81张图片
使用linux命令创建/opt/module目录,我们要将gitlab安装包放到此目录下并安装。

② 安装gitlab

在xshell中利用xftp进行文件传输。将安装包放到/opt/module目录下。
Git(IDEA版本、GitHub,gitee)_第82张图片
在这里插入图片描述
现在目录下就有了。

  • Yum在线 安装 gitlab- ce时,需要下载几百 M的安装文件,非常耗时,所以最好 提前把所需 RPM包下载 到本地,然后使用离线 rpm的方式安装 。下载地址:
    https://packages.gitlab.com/gitlab/gitlabce/packages/el/7/ gitlab ce 13.10.2 ce.0.el7.x86_64.rpm
  • 编写安装脚本。
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
  • 给脚本增加执行权限

Git(IDEA版本、GitHub,gitee)_第83张图片

③初始化并启动

  • 执行以下命令初始化 GitLab服务,过程大概需要几分钟,耐心等待 …
    Git(IDEA版本、GitHub,gitee)_第84张图片

Git(IDEA版本、GitHub,gitee)_第85张图片

  • 执行以下命令启动 GitLab服务,如需停止,执行 gitlab-ctl stop
    Git(IDEA版本、GitHub,gitee)_第86张图片
    在Windows下面的这个地方配置映射

修改Hosts文件:
在【安全】中选中【编辑】,之后选择【Users】,将【修改】和【写入】后面允许的√打上,之后点击【确定】;

在这里插入图片描述
Git(IDEA版本、GitHub,gitee)_第87张图片
登录有两种方式。
使用主机名或者IP地址即可访问 GitLab服务 。 需要提前 配一下 windows的 hosts文件。
注意:我自己使用主机名或者ip地址没有登录上去。

你可能感兴趣的:(Git,github,git,github,intellij-idea)