Git 必看:从安装到团队协作,一篇搞定所有版本管理难题

595 阅读28分钟

刚入行写代码的你,是不是总遇到这些头疼事:改着改着代码突然乱了,想回退到昨天的版本却不知道咋弄?团队协作时,同事改了代码你却同步不上,还总出现 “代码冲突” 的红色警告?

别慌,今天这篇教程就是来帮你搞定这些问题的。咱们从 “Git 到底是个啥” 讲起,一步步教你装软件、配环境,再到本地仓库操作、远程仓库同步,甚至分支管理和冲突解决 —— 全是开发中天天用的干货。不管你是刚接触编程的新手,还是想系统补一补 Git 知识的老手,跟着走下来,保管你能用 Git 把代码管得明明白白。

一、GIT介绍

1. 什么是GIT

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java文件、yml文件、xml文件等),在软件开发过程中被广泛使用。

image.png

2. GIT的用处

我们的所有文件包括代码,都是在磁盘上存储的。会存在以下问题:

  • 如果磁盘满了,或者是磁盘损坏了,是不是就意味着代码就丢失了呢?
  • 一般项目都是协同开发,需要多人合作,那同事之间的代码该如何共享呢?
  • 在项目开发的过程中,由于需求问题,想要把代码回退到前5天的代码,又该如何完成

git的核心作用如下:

  • 远程备份: Git允许你将代码库备份到远程服务器,以防止数据丢失。

    常见的远程备份方式包括使用GitHub、GitLab、Gitee等代码托管服务。

  • 多人协作: Git允许多个开发者在同一个代码库上协同工作。开发者可以共享代码、合并变更、解决冲突等

  • 代码回溯: 代码回溯是指在Git中返回到先前的代码状态或版本。对于修复错误或者恢复不小心删除的代码非常有用。

  • 版本切换: 在Git中,你可以通过切换分支或检出不同的提交来切换代码的版本。

最主要的作用:

  • 记录代码提交的版本日志
  • 备份源代码

二、GIT安装配置

1. 安装GIT

1.1 安装包

当天资料软件目录中已提供最新版。双击直接安装即可

如果要下载的话,下载地址:git-scm.com/download/wi…

image.png

1.2 验证是否成功

安装完成后在任意目录点击鼠标右键,如果能看到如下菜单表示安装完成(Windows11操作系统右键后 需要先点击显示更多选项):

image.png

打开后效果如下:

image.png

2. GIT工作流程

maven仓库:仓库里存储的是jar包,让项目开发时可以更方便的引用jar包

git仓库:存储的是源码 和 提交记录(xx人在xx时间提交了xxx文件,描述是xxx)

如下图:

image.png

GIT可以离线使用:如果没有网的话,可以先仅提交到本地仓库里;当有网时再推送到远程仓库,这样其他人就能从远程仓库里拉取得到代码和提交记录了

  • 本地仓库:开发人员自己电脑上的 Git 仓库
  • 远程仓库:远程服务器上的 Git 仓库

3. GIT全局配置

💡全局配置只需要配置这一次,必须配置

在git bash里依次执行命令:

git config --global user.name "liuyp100"
git config --global user.email "liuyinpeng100@gmail.com"

说明:

  • 上面设置的user.nameuser.email是用户的身份标识,必须需要设置,不然后期的命令操作不了
  • 理论上身份标识可以任意设置,建议还是设置成自己的名字,方便识别是谁提交了代码。

查看配置列表:git config --list

image.png

三、GIT常用命令

常见命令主要分为三大类:

  • 本地仓库命令
  • 远程仓库命令
  • 分支命令

1. 本地仓库命令

1.1 初始化本地仓库

1.1.1 语法示例

要使用Git对项目代码进行版本控制,首先需要创建Git仓库。可以通过如下命令操作:git init

注意:在哪个文件夹里执行git init,就表示将哪个文件夹初始化本地仓库

实际开发:通常是项目文件夹里边 执行

操作步骤:

  1. 在任意目录下创建一个空文件夹,比如名称为git-demo01
  2. 进入这个空文件夹,点击鼠标右键,选择Open Git Bash here,打开命令行窗口
  3. 执行命令 git init。 如果当前目录中出现了.git文件夹(是隐藏文件夹),说明GIT仓库初始化成功

image.png

1.1.2 本地仓库相关概念
  • 工作区:包含.git文件夹的目录就是工作区,也称为工作目录或工作空间,主要用于存放开发的代码

  • 版本库:.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

  • 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

    比如:开发人员小王完成了一个功能,涉及了10个文件的变更,功能完成后要提交一次留下版本记录

    有一个小问题:一次性提交所有这10个文件的话,

    • 万一这里有某些问题,直接提交了,那么提交的内容是有问题的。没有一个临时的缓冲,暂时存储、再检查,然后再提交
    • 可能除了这10个文件,还有其它功能改变了别的文件。而现在只需要提交这10个文件,也不能一次性全部提交,应该有选择性的提交

    可以:

    • 哪些文件要提交,就将哪些文件先添加到暂存区,并没有真正提交
    • 如果这时候功能代码有变化,那么重新添加暂存区即可
    • 最终再次暂存区的内容一次性提交到版本库里

1.2 常用命令

image.png

1.2.1 常用命令介绍
命令作用备注
git status查看文件状态untracked:未跟踪;modified:已跟踪,文本被修改
git add添加到暂存区git add a.txt 或者 git add .
git commit将暂存区内容提交到版本库git commit [文件...] -m '提交时的备注说明'
git log查看详细的提交日志
git reflog显示当前分支的最近几次提交,更简洁
git reset将暂存区内容取消暂存,或切换到指定版本git reset [文件]git reset --hard 版本号

💡工作区的状态,会随着我们的操作不断变化

1.2.2 查看文件状态git status

在工作区中随便创建一个文件,如下图:

image.png

然后执行命令git status,效果如下:

untracked 未跟踪文件,说明当前文件还没有被git进行版本控制

image.png

1.2.3 添加暂存区git add

把新增或修改的文件添加暂存区:

  • git add abc.txt 把指定文件添加暂存区
  • git add * 或者 git add . 把当前目录及其子目录下的所有文件都添加暂存区

Changes to be committed 待提交的更改内容,目前文件在暂存区,还未提交到本地仓库

image.png

1.2.4 提交到本地版本库git commit

提交暂存区的文件到本地版本库

  • 提交一个文件:git commit -m "abc.txt文件第一次提交到本地仓库" abc.txt
  • 提交多个文件:git commit -m "abc.txt文件第一次提交到本地仓库" *

-m 选项指定了提交信息(必须携带,需要知道这次提交的说明是什么,要尽可能的简洁)

nothing to commit, working tree clean 没有需要提交的更改,工作目录是干净的(提交完成的效果)

image.png

1.2.5 查看详细提交日志git log

image.png

1.2.6 查看简洁日志git reflog

image.png

1.2.7 取消暂存或切换版本git reset
将暂存区文件取消暂存
  • 准备工作: 在本地仓库中新创建一个123.txt文件,然后执行命令git add 将它提交到暂存区
  • 取消暂存:可以使用git reset取消暂存

image.png

切换到指定版本
  • 准备工作:我们可以先把abc.txt文件添加点内容,并且可以多提交几次到本地仓库。比如下面我对abc.txt文件提交了三次内容

    • 第一次提交内容为空:之前已经提交过了
    • 第二次提交内容为:11111111
    • 第三次提交内容为:22222222
    • 查看一下历史版本:git log

image.png

  • 切换版本: 现在想要把abc.txt文件的内容恢复到第二次提交的版本内容:11111111

    可以执行命令 git reset --hard 9af358e223c5255fcc5cb023c68c69cc84c08521

    其中:--hard xxxx 是指提交日志中的版本唯一编号

  • 检查abc.txt文件的内容是否正常恢复为:11111111

1.3 忽略文件

项目中会有一些不需要纳入版本控制系统的文件,通常是一些编译文件和临时的缓存文件,把它们纳入版本控制系统中毫无意义。

忽略文件列表被存放在项目根目录中一个被称之为 .gitignore 的文件中。

image.png

忽略文件的规则:

  • 忽略一个特定的文件:path/file.ext
  • 忽略项目下所有这个名字的文件:filename.ext
  • 忽略项目下所有这个类型的文件:*.class
  • 忽略一个特定目录下的所用文件:target/*

💡今天的资料中已经准备了一个.gitignore文件,在项目开发中大家可以直接复制到项目中使用

⚡️注意.gitignore文件应该越早越早,通常是创建项目后立即准备.gitignore,然后再初始化本地仓库、提交等等操作

1.4 小结

要初始化一个本地仓库:git init。通常在哪执行这个命令:通常在项目文件夹里边(比如有pom.xml的文件夹里)

如果在工作区里完成了一个功能,需要提交一次留下记录:先添加到暂存区,再提交到本地仓库

  • 查看工作区的当前状态:git status
  • 添加文件到暂存区:git add 文件路径 或者 git add .(将工作区里所有变更的文件都添加到暂存区)
  • 将暂存区内容提交到本地仓库:git commit -m '本次提交的描述备注'
  • 查看提交日志:git log, 查看当前分支的简洁日志:git reflog
  • 将暂存区的文件取消暂存:git reset 文件路径
  • 切换到指定的历史版本:git reset --hard 版本号

2. 远程仓库命令

2.1 远程仓库介绍

我们可以将版本仓库托管到远程服务器上,这样就不担心本地的代码文件丢失或损坏了。而且大家还可以通过远程仓库共享代码

远程仓库的搭建:

  • 可以直接使用互联网上提供的一些代码托管服务来实现,比如:GitHub、码云gitee等。
  • 也可以自己搭建托管服务,比如:GitLab、Gogs等。

image.png

2.2 在gitee上创建远程仓库

2.2.1 注册并登录gitee

注册码云账号,然后直接登录

⚡️注意,记牢自己的登录账号和登录密码

2.2.2 创建远程仓库

登录系统之后,在右上角点击 "+" 号新建仓库

image.png

项目名称自己定义(决定了仓库的地址),开源与否自己决定

创建成功之后,如下效果,可以看到仓库的地址(https),后面我们上传代码要用

image.png

2.3 常用命令

2.3.1 常用命令介绍

远程仓库操作的常见命令如下:

命令作用备注
git clone <url>克隆远程仓库git clone https://gitee.com/xxx.git
git remote add <shortname> <url>添加关联的远程仓库git remote add origin https://gitee.com/xxx.git
git remote remove <shortname>移除关联的远程仓库git remote remove origin
git push <shortname> <branch>向远程仓库推送git push origin master
git remote [-v]查看关联的远程仓库-v 表示查看详细信息
git pull <shortname> <branch>从远程仓库拉取git pull origin master
  • 通常关联的远程仓库的别名都为origin
  • Git克隆的是该Git远程仓库中的几乎所有数据(包括文件、日志信息、历史记录等),而且克隆之后,该本地仓库就自动关联该远程仓库。
2.3.2 从远程仓库克隆git clone

如果你想获得一份已经存在了的 Git 远程仓库的拷贝,这时就要用到 git clone 命令。 Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等)。

克隆仓库的命令格式: git clone 远程仓库地址

把仓库克隆到本地之后,本地仓库就存在了,可以在本地仓库中进行操作,如:git add commit 等操作

在桌面上右键-Git Bash Here,然后输入命令克隆远程仓库:

image.png

2.3.3 查看关联的远程仓库git remote

如果要查看已经配置的远程仓库服务器,可以执行 git remote 命令,它会列出每一个远程服务器的简称。

如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字。

  • 可以通过-v参数查看远程仓库更加详细的信息
  • 本地仓库配置的远程仓库都需要一个简称,后续在和远程仓库交互时会使用到这个简称

image.png

2.3.4 移除关联的远程仓库

可以删除关联的远程仓库: git remote remove <shortname> , shortname指的是远程仓库的简称

image.png

为方便后续的操作演示,我们重新关联上远程仓库:git remote add <shortname> <url>

image.png

2.3.5 向远程仓库推送

先准备一些代码到工作空间

添加暂存区并提交到本地仓库

image.png

把本地仓库的代码或文件提交到远程仓库中:git push <shortname> <branch>

image.png

如果是第一次向远程仓库推送,需要进行身份认证,认证通过才可以推送,如下图:输入你的gitee登录账号和密码

image.png

也可以在gitee中查看上传代码的情况:

2.3.6 从远程仓库拉取

命令格式:git pull <shortname> <branch>,作用是从远程仓库获取最新版本并合并到本地仓库

目前远程仓库中并没有新的代码,本地仓库与远程仓库的版本是一致的,所以并没有实质性拉取下来什么文件

image.png

2.3.7 本地创建的仓库推送到远程【练习】

刚刚的本地仓库都是直接通过 git clone 命令从远程仓库克隆下来的。那么我们通过git init命令创建的本地仓库也想上传到远程仓库中的话,该怎么办呢?

可以通过命令来添加远程仓库,然后再向远程仓库推送。

  • gitee.com创建一个新的远程仓库(全新的、空的远程仓库)
  • 初始化一个本地仓库:git init
  • 为本地仓库添加关联的远程仓库:git remote add <shortname> <url>
  • 在本地仓库中添加内容并提交
  • 然后推送到远程仓库:git push <shortname> <branch>

2.4 小结

从远程仓库克隆:git clone <url>

查看本地仓库所关联的远程仓库:git remotegit remote -v

取消某个远程仓库的关联:git remote remove <shortname>

为本地仓库添加关联的远程仓库:git remote add <shortname> <url>

将本地仓库的提交记录推送到远程仓库:git push <shortname> <branchname>

从远程仓库拉取最新内容到本地仓库:git pull <shortname> <branchname>

进公司以后使用的简要流程(不考虑分支):

  1. 公司的项目肯定是已经有远程仓库,公司会把远程仓库的url地址、仓库的账号密码
  2. 将远程仓库克隆到本地:git clone
  3. 在本机用idea开发完成功能,修改代码
  4. 每完成一个功能,就提交到本地仓库
  5. 再将本地仓库的内容推送到远程仓库(推之前建议先拉取一下,防止别人先推送修改了远程仓库,我们要解决冲突)

3. 分支命令

3.1 分支介绍

3.1.1 分支介绍

分支是Git使用过程中非常重要的概念,使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线

  • 同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
  • 通过git init命令创建本地仓库时默认会创建一个master分支。

HEAD是一个特殊的引用(reference),它指向当前分支的最新提交(commit)。HEAD标识了当前分支中工作的基础点,即你最近一次提交的地方

image.png

3.1.2 分支使用流程
  1. 创建分支:从主分支(如master)出发,创建一个新的分支(如v1)。

    开发者可以在新的分支上自由地进行代码修改,而不必担心这些修改会影响到主分支或其他团队成员的工作。

  2. 独立开发:在v1分支上,开发者可以自由地编写代码、测试功能,甚至进行多次提交,所有这些操作都独立于主分支。

  3. 合并分支:当v1分支上的开发完成后,开发者可以选择将v1分支的更改合并回主分支。

    这确保了主分支能够包含所有最新的功能和修复,同时保持了代码的整洁和一致性。

  4. 灵活管理:Git的分支机制还允许开发者在需要时轻松地切换分支,比如从v1分支切换到master分支查看或处理其他事务,然后再切换回v1分支继续工作(HEAD的作用)

3.2 常用命令

3.2.1 常用命令介绍
命令说明备注
git branch [-a]查看分支-a参数表示查看所有分支信息(包括本地和远程)
git branch <branchname>创建新的分支git branch b1
git checkout <branchname>切换分支(检出分支)git checkout b1
git push <shortname> <branchname>将指定分支推送到远程仓库git push origin b1
git merge <branchname>合并分支将指定分支合并到当前分支
3.2.2 查询分支
  • git branch 列出所有本地分支
  • git branch -r 列出所有远程分支
  • git branch -a 列出所有本地分支和远程分支

image.png

3.2.3 创建分支

命令格式:git branch 分支名称

image.png

3.2.4 切换分支

一个仓库中可以有多个分支,切换分支命令格式:git checkout 分支名称

注意:在命令行中会显示出当前所在分支,如图所示。

image.png

3.2.5 推送到远程分支

命令格式:git push 远程仓库简称 分支命令

image.png

推送完成后可以查看远程仓库:

3.2.6 合并分支

合并分支就是将两个分支的文件进行合并处理,命令格式:git merge 分支名称

⚡️注意合并的方向,是将指定分支合并到当前分支

演示步骤:

  1. 在b1分支中创建一个新的文件123.txt文件,内容为“11111111”
  2. 使用git add 添加到暂存区
  3. 使用git commit 命令提交到本地仓库
  4. 使用git checkout 命令切换到master分支
  5. 使用git merge 命令来合并两个分支

image.png

3.3 分支创建的规则

在项目开发中,Git分支的创建规则通常是为了提高团队协作效率、代码质量以及版本管理的清晰度。以下是一些常见的Git分支创建规则:

  1. 主分支(Master/Main)

    主分支是项目的稳定版本,用于发布和部署,只有经过严格测试和代码审核的代码才能被合并,通常命名为mastermain

  2. 开发分支(Develop/Dev)

    开发分支是团队进行日常开发的主要分支,通常命名为developdev,每个新功能或任务通常从该分支创建独立的特性分支进行开发。

  3. 特性分支(Feature)

    特性分支用于开发特定的功能或解决具体的问题,每个新功能或任务都应在从开发分支创建的feature/xxx形式的特性分支上进行开发和测试。

  4. 修复分支(Hotfix/Bugfix)

    修复分支用于解决线上紧急bug或修复已知问题,从主分支创建以确保修复代码直接应用于稳定版本,命名格式为hotfix/xxxbugfix/xxx

  5. 发布分支(Release)

    发布分支用于准备发布新版本,进行最后的测试和调整,从开发分支创建以确保代码稳定,命名格式为release/xxx,其中xxx是具体的版本号。

image.png

3.4 小结

查询分支:git branch查询本地分支, git branch -r查询远程分支,git branch -a

创建分支:git branch 分支名

切换分支:git checkout 分支名称。如果当前分支里有未提交的代码,切换分支时将会携带到目标分支里

推送分支到远程仓库:git push origin 分支名

合并分支:git merge 分支名,将指定分支合并到当前分支

4. 版本冲突问题

4.1 产生冲突的场景

  • 多人同时修改同一文件:一个项目是由一个团队开发,如果多个开发人员同时对同一个文件的相同部分进行修改,并尝试提交这些修改时,Git无法自动合并这些更改,从而导致冲突。
  • 合并分支时: 当尝试将两个不同的分支合并到一个公共分支(如主分支)时,如果这些分支对同一个文件进行了不同的修改,Git在合并这些更改时可能会产生冲突。
  • 重命名或移动文件:如果在一个分支中重命名或移动了文件,而在另一个分支中对原始文件进行了修改,那么在合并这些分支时可能会产生冲突。
  • 删除文件:如果一个分支删除了某个文件,而另一个分支对该文件进行了修改,合并时也会发生冲突。

4.2 如何解决冲突

4.2.1 制造一个冲突问题

解决Git冲突通常需要手动干预,为了更好的演示冲突的问题,我们可以手动制造一个冲突

  • 在master分支中,对123.txt文件进行修改,在第2行添加内容“222master”,然后add、commit
  • 切换到b1分支中,对123.txt文件进行修改,在第2行添加与master不同的内容“222b1”,然后add、commit
  • 执行合并分支的命令:git merge master (从master分支合并到b1分支),冲突就会产生

image.png

4.2.2 解决冲突的步骤

💡解决冲突时,需仔细分析原因和上下文,确保选择正确方案。

为减少冲突,建议保持良好沟通和协作,避免同时修改同一文件部分,频繁提交代码和定期合并分支也有助于及时发现和解决冲突。

1) 查看冲突
  • 使用git status命令查看哪些文件存在冲突。
  • 使用git diff命令查看冲突文件的差异。

image.png

2) 手动解决冲突
  • 打开冲突文件,找到被Git标记的冲突部分。

image.png

  • 手动编辑冲突部分,根据需要保留或合并不同的更改。

    并删除Git的冲突标记(<<<<<<<=======>>>>>>>)。

image.png

3) 标记冲突已解决
  • 使用git add命令将解决冲突后的文件添加到暂存区,标记为冲突已解决。
4) 提交更改
  • 使用git commit命令提交解决冲突后的更改。在提交信息中,可以简要描述解决冲突的过程。
  • git commit -a 全部提交
  • git commit abc.txt -i -m "冲突解决" 提交部分文件

image.png

5) 继续合并或推送(可选)
  • 如果是在合并分支时产生的冲突,解决冲突后可以继续合并其他分支。
  • 如果需要,将更改推送到远程仓库。

4.3 小结

查看有哪些文件冲突了:git status

找到冲突的文件,依次手动解决各个冲突。然后再添加暂存区、提交本地仓库、推送远程仓库

5. 常用命令总结

命令使用流程

  1. 进入团队先找直属领导开通远程仓库Git账号
  2. 使用git clone命令克隆远程仓库的代码到本地的工作空间(首次使用,仅需一次)
  3. 编写代码完毕后,使用git add命令添加暂存区
  4. 使用git commit命令提交到本地仓库
  5. 使用**git pull**命令拉取最新的代码,如有冲突需沟通解决
  6. 使用git push推送到远程仓库
  7. 不断重复3-6步

如下图所示:

image.png

四、Idea集成GIT

通过Git命令可以完成Git相关操作,为了简化操作过程,我们可以在IEDA中配置Git,配置好后就可以在IDEA中通过图形化的方式来操作Git。

1. IDEA集成GIT

在IDEA中使用Git,本质上还是使用的本地安装的Git软件,所以需要提前安装好Git并在IDEA中配置Git。

IDEA中的配置:在如下界面中选中git安装目录中的git.ext

image.png

2. 获取GIT仓库

在IDEA中获取Git仓库有两种方式:

  • 本地初始化仓库,本质就是执行 git init 命令
  • 从远程仓库克隆,本质就是执行 git clone 命令

2.1 克隆远程仓库

在IDEA中从远程仓库克隆本质就是执行的 git clone 命令,具体操作过程如下:

  1. 在IDEA欢迎界面中点击【Get from VCS】
  2. 在弹出的【Get from Version Control】窗口中输入远程仓库的URL地址和对应的本地仓库存放目录,点击【Clone】按钮进行仓库克隆操作

image.png

2.2 本地初始化仓库

在IDEA中通过如下操作可以在本地初始化一个本地仓库,其实底层就是执行的 git init 命令。操作过程如下:

💡大家可以使用昨天的MP代码 或者 创建一个新的project 来进行版本控制

  1. 先准备忽略文件

image.png

  1. 找到菜单【Version control】---【Create Git Repository】

image.png

  1. 在弹出的【Create Git Repository】对话框中选择当前项目根目录,点击【OK】按钮:

image.png

  1. 操作完成后可以看到当前项目根目录下出现了.git隐藏目录:

image.png

  1. 操作完成后可以在IDEA的工具栏中看到Git的相关操作图标:

image.png

2.3 忽略文件

如果项目的根目录中已经存在了忽略文件.gitignore文件,我们直接使用就可以了

如果不存在.gitignore文件,可以将资料中提供的.gitignore文件拷贝到项目根目录中使用

3. 本地仓库操作

本地仓库操作:

  • 将文件加入暂存区,本质就是执行 git add 命令
  • 将暂存区的文件提交到版本库,本质就是执行 git commit 命令
  • 查看日志,本质就是执行 git log 命令

3.1 添加文件到暂存区

💡这里使用的是新建的project进行演示,project名称为git-demo3

大家可用昨天的mp-demo项目 初始化本地仓库,然后练习后边的内容

当在Git工作区新增文件或者对已有文件修改后,就需要将文件的修改加入暂存区

操作:项目上右键,找到git,点击Add

image.png

3.2 暂存区内容提交到版本库

将暂存区文件提交到版本库,可以选择一个文件进行提交,也可以选择整个项目提交多个文件。在IEDA中对文件的提交进行了简化操作,也就是如果文件修改后,无需再加入暂存区,可以直接提交。

  1. 提交一个文件:如果选中一个文件提交,则菜单名称为【Commit File...】

image.png

  1. 提交多个文件:如果选中一个文件夹提交,则菜单名称为【Commit Directory...】

  2. 由于提交操作属于高频操作,所以为了进一步方便操作,在IDEA的工具栏中提供了提交操作的快捷按钮

image.png

3.3 查看日志

查看日志,既可以查看整个仓库的提交日志,也可以查看某个文件的提交日志。

查看整个仓库的提交日志:

image.png

查看单个文件的提交日志:

image.png

4. 远程仓库操作

远程仓库操作:

  • 查看远程仓库,本质就是执行 git remote 命令
  • 添加远程仓库,本质就是执行 git remote add 命令
  • 推送至远程仓库,本质就是执行 git push 命令
  • 从远程仓库拉取,本质就是执行 git pull 命令

4.1 查看并添加远程仓库

右键项目,找到【Git】-->【Manage Remotes...】

image.png 在弹出的框中可以查看已经关联的远程仓库,如果没有,则可以点击" + "号来新增远程仓库

⚡️注意:

  • 如果是新建的project 初始化的本地仓库,则需要提前在gitee中新建一个新的空远程仓库,然后在本地添加远程仓库地址
  • 如果是从远程仓库里clone下来的,则自动关联了远程仓库,不需要额外添加

image.png

4.2 推送到远程仓库

可以通过如下操作将本地仓库文件推送至远程仓库:

image.png

在弹出的【Push Commits】窗口中可以看到本次推送的文件,点击【Push】按钮即可推送至远程仓库:

image.png

推送成功之后,可以在gitee中查看推送之后的代码

4.3 从远程仓库拉取代码

可以通过如下操作从远程仓库拉取:

image.png

5. 分支操作

分支操作:

  • 查看分支,本质就是执行 git branch 命令
  • 创建分支,本质就是执行 git branch 分支名 命令
  • 切换分支,本质就是执行 git checkout 命令
  • 将分支推送到远程仓库,本质就是执行 git push 命令
  • 合并分支,本质就是执行 git merge 命令

5.1 查看分支

可以通过如下操作查看分支:

image.png

5.2 创建分支

分支窗口中点击【New Branch】,弹出输入分支名称,点击Create按钮,完成分支的创建

image.png

创建成功之后的效果是这样的

image.png

5.3 切换、推送与合并分支

image.png

6. 解决冲突

6.1 模拟一个冲突

模拟他人修改pom.xml

在gitee.com中找到pom.xml文件修改一下内容,然后在gitee.com中直接提交(模拟其他人提交代码)

image.png

模拟自己修改pom.xml

在本地idea中也修改pom.xml,然后提交到本地仓库

⚡️注意:刚刚在gitee.com上修改的是master分支的pom.xml;那么本地也修改master分支的pom.xml,才会出现冲突

image.png

image.png

出现冲突

在idea里将master推送到远程仓库,会出现冲突

image.png

推送后出现弹窗警告,点击“Merge”进入解决冲突的界面

image.png

6.2 解决冲突

6.3.1 解决冲突问题

在IDEA中产生冲突可以很方便的查看和解决,下图就是产生冲突之后的效果展示:

  • accept yours:这意味着在解决冲突时,你选择了保留你自己的更改,而忽略了他人的更改。换句话说,你决定使用你自己的代码版本,而不是合并其他人的更改。
  • accept theirs:这与“accept yours”相反,意味着你选择了接受他人的更改,而忽略了你自己的更改。在这个选项下,你决定采用他人的代码版本,而不是你自己的。
  • merge:这通常意味着你尝试手动解决冲突,将你和他人的更改结合起来。这可能涉及查看代码的不同部分,决定哪些更改应该保留,哪些应该丢弃,或者可能需要编写新的代码来融合两个版本。(推荐使用)

image.png

点击Merge按钮,如下图,有三个框,可以根据实际情况从历史版本和当前版本的代码选择最终合并的结果,冲突即解决

image.png

image.png

6.2.2 继续提交或推送

当冲突解决之后,可以自行决定是否将处理后的代码 推送到远程仓库

image.png 到这儿,Git 的核心操作就讲得差不多了 —— 从初始化仓库、提交代码,到远程同步、分支管理,再到冲突解决,这些都是开发中绕不开的基本功。

其实 Git 没那么难,关键在多练:新建个测试仓库,试试提交几次代码、切个分支改改内容,再合并看看冲突咋解决。练着练着你就会发现,以前让你头大的 “版本混乱”“代码丢了”,用 Git 分分钟就能搞定。

记住,工具是为了让开发更轻松。现在就打开你的电脑,跟着教程里的步骤动手试试吧 —— 下次团队协作时,你说不定就是那个 “Git 小能手” 啦!