Git的简单使用

文章目录

      • 一、Git
        • 1.1 安装
        • 1.2 Git 的工作机制
        • 1.3 Git 常用命令
          • 1.3.1 设置用户签名
          • 1.3.2 初始化本地仓库
          • 1.3.3 查看本地仓库状态
          • 1.3.4 将文件添加到暂存区
          • 1.3.5 将文件提交到本地仓库
          • 1.3.6 查看日志
          • 1.3.7 文件修改
          • 1.3.8 版本穿梭
        • 1.4 Git 分支
          • 1.4.1 创建分支
          • 1.4.3 切换分支
          • 1.4.4 合并分支
      • 二、GitHub
        • 2.1 GitHub创建远程仓库
        • 2.2 为远程库创建别名
        • 2.3 推送本地库至远程库
        • 2.4 拉取远程库至本地库
        • 2.5 克隆远程库到本地
        • 2.6 SSH免密登录
      • 三、IDEA 集成 Git
        • 3.1 环境准备
          • 3.1.1 配置忽略文件
          • 3.1.2 IDEA 设置 Git
        • 3.2 IDEA 中 Git 的基础使用
          • 3.2.1 初始化本地仓库
          • 3.2.2 添加和提交
          • 3.2.3 版本切换
          • 3.2.4 分支的管理
            • 3.2.4.1 创建和切换分支
            • 3.2.4.2 合并分支
      • 四、IDEA 集成 GitHub
        • 4.1 IDEA 设置 GitHub
        • 4.2 分享项目到 GitHub
        • 4.3 代码推送
        • 4.4 代码拉取
        • 4.5 克隆代码
      • 五、IDEA 集成 Gitee

一、Git

1.1 安装

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

双击安装,设置好安装路径后,一直下一步即可
Git的简单使用_第1张图片

Git的简单使用_第2张图片

Git的简单使用_第3张图片

Git的简单使用_第4张图片

Git的简单使用_第5张图片

Git的简单使用_第6张图片

Git的简单使用_第7张图片

在这里插入图片描述

Git的简单使用_第8张图片

Git的简单使用_第9张图片

Git的简单使用_第10张图片

Git的简单使用_第11张图片

Git的简单使用_第12张图片

后面默认下一步一直到安装

验证是否安装成功:
鼠标右击桌面能出现下面两个选项

Git的简单使用_第13张图片

在 Git Bash 中输入命令 git --version 可以查看到 Git 的版本号

Git的简单使用_第14张图片

1.2 Git 的工作机制

Git的简单使用_第15张图片

  1. 工作区,本地代码存放的磁盘的目录的位置,即那个目录就是工作区
  2. 代码一旦提交到本地库就会自动生成历史版本,生成历史版本后,就无法删除了

1.3 Git 常用命令

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

不管是 Windows 安装还是 Linux 安装,安装好之后,我们都需要先配置一下用户签名。

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

如果不配置以后每次提交的时候都会让你输入用户名和密码。

Git的简单使用_第16张图片

配置完成后在系统的用户文件夹中会产生一个 .gitconfig 文件,打开就可以看到刚刚设置的信息

Git的简单使用_第17张图片

1.3.2 初始化本地仓库

初始化本地仓库的方式有两种:

  1. 直接从远程仓库克隆
  2. 通过命令 git init 从本地目录进行初始化

这里演示第二种

进入本地一个需要被用来作为仓库的文件夹,右击访问 Git Bash,之后输入命令 git init 就可以创建一个本地仓库

Git的简单使用_第18张图片

创建完成后会看到原本的文件夹中会出现一个 .git 的隐藏文件夹

Git的简单使用_第19张图片

1.3.3 查看本地仓库状态

通过命令 git status 来查看本地仓库的状态

Git的简单使用_第20张图片

如果我们在文件夹中添加一个文件,那么日志的状态就会变化

添加文件我们可以直接使用 Windows 图形化界面来添加,也可以使用 Linux 命令来添加,Linux 命令在 Git Bash 窗口中是通用的

Git的简单使用_第21张图片

Git的简单使用_第22张图片

1.3.4 将文件添加到暂存区

使用命令 git add 文件名

Git的简单使用_第23张图片

文件添加到暂存区后,本地仓库的状态会改变

Git的简单使用_第24张图片

其中,提示的代码 git rm --cached 是教我们如何将暂存区的文件删除掉

Git的简单使用_第25张图片

删除后,本地仓库的状态又会变成未追踪到文件的状态

1.3.5 将文件提交到本地仓库

使用命令 git commit -m "日志信息" 文件名 (如果缓存区只有一个文件,文件名可以不加)

Git的简单使用_第26张图片

这时查看本地仓库的状态信息为

Git的简单使用_第27张图片

注意:提交到本地仓库的数据,是没办法删除的,除非你将整个仓库都删除掉,不然的话,即便你对文件修改了,重新提交,其他人还是可以通过查看、还原历史版本的方式,来查看之前提交的数据是什么样的,所以提交本地仓库这个操作要慎重进行(可不要将骂人的话提交本地仓库哦,会被人看到的)

1.3.6 查看日志

命令:git reflog 查看引用日志信息

Git的简单使用_第28张图片

引用日志信息中有提交的版本号,提交的分支和提交的信息等数据

命令:git log 查看详细的日志信息

Git的简单使用_第29张图片

详细的日志信息中有完整的版本号,提交的分支,用户签名和提交的信息等数据

命令:git log 文件名 查看某个文件的日志信息

Git的简单使用_第30张图片

1.3.7 文件修改

文件修改后,也是需要对文件进行提交缓存区和提交本地仓库的操作的

Git的简单使用_第31张图片

文件修改后,查看状态,会提示有文件内容发生了变化,这时候需要你继续进行提交

Git的简单使用_第32张图片

1.3.8 版本穿梭

1、查看历史版本:

查看历史版本其实就是说查看日志,我们通过 git reflog 或者 git log 两个命令来查看版本信息

2、切换版本:

命令:git reset --hard 版本号

通过这一个命令,可以切换回之前修改过的版本

Git的简单使用_第33张图片

在 .git → HEAD 文件中,我们可以看到当前我们处于哪一个分支下面

在 .git → refs → heads → master 文件中,我们可以看到当前分支处于哪一个版本下

1.4 Git 分支

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

在这里插入图片描述

创建了分支后,在 .git → refs → heads 文件夹中,会多出来一个分支文件

Git的简单使用_第34张图片

1.4.2 查看分支

Git的简单使用_第35张图片

git branch
只查看当前有的分支的名字,以及当前处于哪个分支下

git branch -v
除了查看当前所有的分支,还可以看到各个分支的版本号以及当前处于哪一个分支下

1.4.3 切换分支

Git的简单使用_第36张图片

git checkout 分支名
切换到指定分支下

git checkout -b 分支名
创建指定分支,并切换到创建好的分支下

在分支上修改文件内容,不会影响到其他分支的内容,各个分支的内容各自管理,各自提交

1.4.4 合并分支

Git的简单使用_第37张图片

合并分支之前,我们应该先将分支切换到主分支下,因为一般合并都是将子分支的内容合并到主分支下

合并分支时,如果主分支没有做过修改,子分支做了修改,那么在进行分支的合并的时候,会正常合并,不会出现合并冲突的情况

但是如果我们在两个分支都做了修改,这时要来进行分支合并,就会出现分支合并失败的情况

Git的简单使用_第38张图片
Git的简单使用_第39张图片

这时我们执行了分支合并操作,合并就会有问题

Git的简单使用_第40张图片

提示了合并出现冲突,自动合并失败,MERGING表示还在合并中

因为两边都进行了修改,所以 git 并不知道要以那边的修改为准,所以自动合并会失败,这种时候需要我们手动对代码进行修改后再提交

Git的简单使用_第41张图片

打开文件可以看到冲突的代码

其中 <<<<<<< HEAD 和 ======= 中间的代码表示当前分支做了修改的代码

======= 和 >>>>>>> f1 中间的代码表示 f1 分支做了修改的代码

我们需要将<<<<<<< HEAD 、======= 和 >>>>>>> f1 去掉,然后将代码改成我们需要的样子,之后保存提交。

注意,这里使用 commit 将代码提交到本地仓库时,commit 命令的后面不能加文件名

Git的简单使用_第42张图片
Git的简单使用_第43张图片

二、GitHub

2.1 GitHub创建远程仓库

Git的简单使用_第44张图片

Git的简单使用_第45张图片

Git的简单使用_第46张图片

2.2 为远程库创建别名

为远程库创建别名:git remote add 别名 远程库链接

建议在为远程库指定别名的时候,别名就跟项目的名字一样,这样方便记忆,也不会导致重复

Git的简单使用_第47张图片

查看现有的远程库别名:git remote -v

Git的简单使用_第48张图片

push表示推送,fetch表示拉取或者克隆,这意味着我们在推送或者拉取https://github.com/fjw-ysw/mygit01.git 这个项目的时候,都可以使用 mygit01 这个别名

2.3 推送本地库至远程库

命令:git push 别名/远程库链接 分支名

推送操作执行的最小单位是分支,我们在进行推送的时候一定要指定推送哪个分支的代码到远程库上

在这里插入图片描述

由于这个 GitHub 的服务器在国外,所以我们推送的时候可能会出现网络影响导致失败的情况,多推几次即可

Git的简单使用_第49张图片

正常推送会弹出需要你登陆的一个界面,我们选择使用浏览器的账号来登录即可。这一步也可能会因为网络原因登录失败,如果失败就只能重新推送

Git的简单使用_第50张图片

浏览器会弹出提示,需要你授权,如果你长时间没有输入密码登录,在点击授权后,可能还需要你输入密码验证一下

推送成功就可以看到以下提示,GitHub 中也会有自己的项目代码出来

Git的简单使用_第51张图片

Git的简单使用_第52张图片

2.4 拉取远程库至本地库

命令:git pull 别名/远程库链接 分支名

如果你在远程库中对代码文件进行了修改,这会导致在来本地库查看时,内容和远程库不一致,这时候我们就需要使用到拉取功能

Git的简单使用_第53张图片

同样的,在拉取时,我们也要指定拉取哪一个分支中的代码。且拉取也是会受网络因素影响失败的

Git的简单使用_第54张图片
Git的简单使用_第55张图片
Git的简单使用_第56张图片

2.5 克隆远程库到本地

命令:git clone 远程库链接

如果你需要克隆其他项目到本地,就可以使用上面的命令

假设我们需要克隆项目到 D:\TestFile\git-test 目录,那么我们就需要在这个目录中进入 git bash,之后执行上面的命令

Git的简单使用_第57张图片
Git的简单使用_第58张图片
Git的简单使用_第59张图片

克隆操作会自动帮我们做三件事情:

  1. 拉取代码
  2. 初始化本地仓库
  3. 创建别名(只会创建默认的别名origin)

Git的简单使用_第60张图片

2.6 SSH免密登录

在远程仓库的项目中,我们除了可以通过 HTTPS 链接来推送、拉取和克隆项目外,我们还可以使用 SSH 链接来做这些操作,不过 SSH 需要添加 KEY 公钥后才可以使用

Git的简单使用_第61张图片

SSH密钥的生成:

进入计算机的用户目录中,在打开 Git Bash

Git的简单使用_第62张图片

命令:ssh-keygen -t rsa -C XXX

其中,常见的命令选项如下

-t 用于指明密钥加密的算法,rsa 是一种著名的非对称加密协议

-C 表示描述,后面跟着描述的内容,我这里用邮箱来作为描述

具体的命令选项可以参考下图

Git的简单使用_第63张图片

执行命令后会出现一些要你操作的步骤,我们直接回车就可以了(三次)

在这里插入图片描述

出现如下画面表示成功

Git的简单使用_第64张图片

生成成功后就会在当前目录下生成一个 .ssh 的目录,点击进去可以查看公钥和私钥

Git的简单使用_第65张图片

这时我们可以将公钥的内容复制,到 GitHub 中配置使用

Git的简单使用_第66张图片

Git的简单使用_第67张图片

Git的简单使用_第68张图片

Git的简单使用_第69张图片

这样就添加成功了

配置了 SSH 公钥后,我们后续进行数据的推送、拉取和克隆时,只要是使用 SSH 链接来操作的,就都不需要提示登录验证了

Gitee 的操作和 GitHub 的是类似的,都是一样的命令和配置方式

三、IDEA 集成 Git

3.1 环境准备

3.1.1 配置忽略文件

在我们使用 IDEA 来进行项目开发的时候,会生成很多的配置文件,例如 .idea 文件夹中的文件还有 .iml 文件

这些文件与项目的实际功能是无关的,不参与服务器的部署运行

因此在使用 Git 管理项目的时候,这些配置文件我们是不需要管理的,所以我们要配置一个忽略文件,来忽略这些配置文件

配置方式:

  1. 在用户目录中新建一个 xxx.ignore 文件(前缀的名称随便起,建议是 git.ignore
  2. .gitconfig 文件中引用忽略文件

git.ignore 文件模板内容

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (
.mtj.

# 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

.gitconfig 引用忽略文件语法

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

Git的简单使用_第70张图片

3.1.2 IDEA 设置 Git

Git的简单使用_第71张图片

3.2 IDEA 中 Git 的基础使用

3.2.1 初始化本地仓库

在 IDEA 中配置完成 Git 后,我们还是不能使用 Git 来管理项目,这是因为这一个项目还未进行本地仓库的初始化

Git的简单使用_第72张图片

我们需要在 idea 中初始化本地仓库先,操作如下

Git的简单使用_第73张图片

Git的简单使用_第74张图片

初始化仓库后,在项目目录中我们就可以看到 .git 文件夹了

Git的简单使用_第75张图片

且 idea 项目右击可以看到有一个 Git 操作的选项

Git的简单使用_第76张图片

3.2.2 添加和提交

在我们初始化仓库后,会发现 Main.java 文件变成了红色,这表明这一个 java 文件目前还处在工作区,还未添加到暂存区,下面我们演示怎么将代码添加到暂存区

方式一:

右击需要添加到暂存区的文件,选择 Git → add,就可以将文件添加至暂存区

Git的简单使用_第77张图片

方式二:

选中整个项目,右击选择 Git → add,进行添加暂存区

Git的简单使用_第78张图片

方式三:

新建文件的时候,idea 会提示是否添加暂存区,我们可以直接添加暂存区

Git的简单使用_第79张图片

文件添加后,文件的颜色会变为绿色

提交暂存区的文件到本地仓库,也是通过一样的方法:Git → Commit Directory…

Git的简单使用_第80张图片

Git的简单使用_第81张图片
文件提交后,文件的颜色会变为黑色

3.2.3 版本切换

当我们文件进行了修改后,文件的颜色会变成蓝色,蓝色代表这个文件之前追踪提交过,现在发生了改变,这时候我们需要在进行一次添加和添加(在 idea 中,发生了修改后也可以不用添加暂存区,直接提交也可以,不过要注意,提交的代码就无法删除了,切换版本都可以查看到)

Git的简单使用_第82张图片

查看版本情况

Git的简单使用_第83张图片

切换版本:选中要切换的版本,右击选择 Checkout Revision 即可切换版本

Git的简单使用_第84张图片

3.2.4 分支的管理
3.2.4.1 创建和切换分支

创建分支

方式一:右击项目创建

Git的简单使用_第85张图片

Git的简单使用_第86张图片

Git的简单使用_第87张图片

方式二:在查看日志的地方创建

Git的简单使用_第88张图片

Git的简单使用_第89张图片

切换分支

Git的简单使用_第90张图片

看自己当前处于哪一个分支,就看日志界面的右下角的分支名

3.2.4.2 合并分支

正常合并

如果只有一个分支对代码进行了修改,那么合并分支不会造成冲突,可以正常合并

Git的简单使用_第91张图片

切换至主分支执行合并操作即可

Git的简单使用_第92张图片

冲突合并

如果存在多个分支对同一份代码进行了修改,在合并分支时就会出现冲突

Git的简单使用_第93张图片

Git的简单使用_第94张图片

Git的简单使用_第95张图片

像上述的情况,合并分支时就会出现分支的冲突

Git的简单使用_第96张图片

Git的简单使用_第97张图片

IDEA 对产生冲突的代码都有做出标记,我们需要决定保留哪些代码,将产生了冲突,需要保留的代码移动至中间提交就可以保留下来,不需要的就点击 × 删除掉

Git的简单使用_第98张图片

Git的简单使用_第99张图片

进行处理后,点击 Apply 即可合并分支,日志状态也会发生变化,分叉的两条路线合并在一起

四、IDEA 集成 GitHub

4.1 IDEA 设置 GitHub

使用账号连接 GitHub

Git的简单使用_第100张图片

Git的简单使用_第101张图片

Git的简单使用_第102张图片
Git的简单使用_第103张图片

这样便是连接上了 GitHub 了,使用这种方式连接 GitHub 需要看网络的情况,前几次很大概率是连接失败的,需要多试几次

使用口令连接 GitHub

使用口令连接 GitHub,我们就需要先去 GitHub 中生成一个口令

Git的简单使用_第104张图片

Git的简单使用_第105张图片

Git的简单使用_第106张图片

Git的简单使用_第107张图片

口令生成后需要尽快复制下来,因为口令只会显示一次,页面刷新后就不再显示了

Git的简单使用_第108张图片

Git的简单使用_第109张图片

4.2 分享项目到 GitHub

Git的简单使用_第110张图片

Git的简单使用_第111张图片

4.3 代码推送

我们本地的代码做了修改,提交了本地库后,远程库的代码还是不会变化的,我们需要保证本地库和远程库的代码统一,需要使用到代码推送功能

Git的简单使用_第112张图片

注: 本地库进行了代码提交后(commit操作),才可以执行代码推送

方式一:

Git的简单使用_第113张图片

方式二:

Git的简单使用_第114张图片

方式三:

Git的简单使用_第115张图片

点击后会弹出以下框框

Git的简单使用_第116张图片

使用 https 链接来连接 GitHub 可能会因为网路原因失败,我们可以配置 ssh 链接来连接 GitHub

Git的简单使用_第117张图片

Git的简单使用_第118张图片

Git的简单使用_第119张图片

推送完成后,GitHub 上也会有本地修改过的代码

Git的简单使用_第120张图片

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

4.4 代码拉取

如果远程库的代码有变化,我们需要同步远程库和本地库的代码数据,就需要使用到代码的拉取

Git的简单使用_第121张图片

方式一:

Git的简单使用_第122张图片

方式二:

Git的简单使用_第123张图片

点击之后选择好你要使用的连接方式以及分支,点击 Pull 即可拉取代码

Git的简单使用_第124张图片

Git的简单使用_第125张图片

4.5 克隆代码

Git的简单使用_第126张图片

Git的简单使用_第127张图片

五、IDEA 集成 Gitee

安装 Gitee 插件

在我们使用 GitHub 时是不需要安装 GitHub 插件的,这是因为 IDEA 自带了这个插件

而我们使用 Gitee 时,就需要先安装这个插件,我们才可以使用 Gitee

Git的简单使用_第128张图片

之后的操作就和 GitHub 一样,我们需要先连接上 Gitee 账号

Git的简单使用_第129张图片

Git的简单使用_第130张图片

Git的简单使用_第131张图片

初始化仓库后,分享项目到 Gitee

Git的简单使用_第132张图片

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