目录
一、引言
在软件开发过程中,版本控制是一项至关重要的工作。它能够帮助开发者管理代码的变更、回溯历史版本、实现多人协作等。Git 作为目前最流行的分布式版本控制工具,被广泛应用于各种软件开发项目中。本文将详细介绍 Git 的基本概念、常用命令以及在 IDEA 中的使用方法,帮助你快速掌握 Git 的使用。
二、Git 概述
2.1 什么是 Git
Git 是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件,如 Java 类、xml 文件、html 页面等。与传统的集中式版本控制工具(如 SVN、CVS、VSS)不同,Git 采用分布式架构,每个开发者的本地电脑上都有一个完整的仓库副本,这使得开发者可以在本地独立进行版本管理,无需依赖网络连接。
2.2 使用 Git 能做什么
- 代码回溯:Git 在管理文件过程中会记录日志,方便开发者回退到历史版本。
- 版本切换:Git 存在分支的概念,一个项目可以有多个分支(版本),开发者可以任意切换。
- 多人协作:Git 支持多人协作,即一个团队共同开发一个项目,每个团队成员负责一部分代码,通过 Git 就可以管理和协调。
- 远程备份:Git 通过仓库管理文件,在 Git 中存在远程仓库,如果本地文件丢失还可以从远程仓库获取。
2.3 Git 仓库类型
Git 仓库分为两种:本地仓库和远程仓库。
- 本地仓库:开发人员自己电脑上的 Git 仓库。
- 远程仓库:远程服务器上的 Git 仓库。
2.4 Git 基本操作流程
在 Git 中,常见的操作流程包括:
- commit:提交,将本地文件和版本信息保存到本地仓库。
- push:推送,将本地仓库文件和版本信息上传到远程仓库。
- pull:拉取,将远程仓库文件和版本信息下载到本地仓库。
三、Git 下载与安装
3.1 下载地址
你可以从官方网站(Redirecting… )下载 Git 的安装包。
3.2 安装步骤
下载完成后,得到安装文件,直接双击完成安装即可(一直下一步)。安装完成后,可以在任意目录下点击鼠标右键,如果能够看到如下菜单则说明安装成功:
- Git GUI Here:打开 Git 图形界面。
- Git Bash Here:打开 Git 命令行。
四、Git 代码托管服务
4.1 常用的 Git 代码托管服务
为了实现多人协作和远程备份,我们需要使用远程仓库。可以借助互联网上提供的一些代码托管服务来搭建远程仓库,比较常用的有 GitHub、码云、GitLab 等。
名称 | 网址 | 说明 |
---|---|---|
GitHub | GitHub · Build and ship software on a single, collaborative platform · GitHub | 一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。 |
码云 | Gitee - 基于 Git 的代码托管和研发协作平台 | 国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub,码云速度会更快。 |
GitLab | The most-comprehensive AI-powered DevSecOps platform | GitLab | 一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。 |
BitBucket | Bitbucket | Git solution for teams using Jira | 一家源代码托管网站,采用 Mercurial 和 Git 作为分布式版本控制系统,同时提供商业计划和免费账户。 |
4.2 码云代码托管服务
下面以码云为例,介绍如何使用代码托管服务。
4.2.1 注册码云账号
注册网址:注册 - Gitee.com
4.2.2 登录码云
注册完成后,可以使用刚刚注册的邮箱进行登录(地址:登录 - Gitee.com )。
4.2.3 创建远程仓库
登录成功后,可以创建远程仓库。操作方式如下:
- 点击相应按钮进入新建仓库页面。
- 在新建仓库页面中,填写仓库名称(必填,每个仓库都需要有一个名称,同一个码云账号下的仓库名称不能重复)、路径(访问远程仓库时会使用到,一般无需手动指定,和仓库名称自动保持一致)、选择开源或私有(开源表示所有人都可以查看此仓库,私有表示只有此仓库的成员可见,其他人不可见)等信息。
- 创建完成后,可以查看仓库信息。每个 Git 远程仓库都会对应一个网络地址,点击【克隆 / 下载】按钮,在弹出窗口点击【复制】按钮即可复制网络地址。
4.2.4 邀请其他用户成为仓库成员
在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。
- 点击管理按钮进入仓库管理页面,左侧菜单中可以看到【仓库成员管理】。
- 点击【开发者】菜单,跳转到相应页面。
- 点击【添加仓库成员】菜单下的【邀请用户】菜单,跳转到邀请用户页面。可以看到邀请用户有多种方式:链接邀请、直接添加、通过仓库邀请成员。
注意:被邀请用户必须为码云的注册用户,否则无法成为仓库成员。
五、Git 常用命令
5.1 Git 全局设置
当安装 Git 后,首先要做的事情是设置用户名称和 email 地址。这是非常重要的,因为每次 Git 提交都会使用该用户信息。在 Git 命令行中执行下面命令:
git config --global user.name "itcast"
git config --global user.email "hello@itcast.cn"
查看配置信息:
git config --list
注意:上面设置的 user.name 和 user.email 并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置。
5.2 获取 Git 仓库
要使用 Git 对我们的代码进行管理,首先需要获得 Git 仓库。获取 Git 仓库通常有两种方式:
5.2.1 在本地初始化 Git 仓库
- 介绍:在开发人员本地电脑磁盘任意选择一个目录,通过 git 创建本地的 git 版本仓库。
- 命令格式:
git init
- 实现步骤:
- 在任意目录下创建一个空目录(例如 repo1)作为我们的本地 Git 仓库。
- 进入 repo1 这个目录里面,点击右键打开 Git bash 窗口。
- 执行命令
git init
。如果在当前目录中看到.git 文件夹(此文件夹为隐藏文件夹)则说明 Git 仓库创建成功。
5.2.2 从远程仓库克隆
- 介绍:可以通过 Git 提供的命令从远程仓库进行克隆,将远程仓库克隆到本地。
- 命令格式:
git clone 远程仓库地址
- 实现步骤说明:
- 远程仓库点击初始化 readme 文件。
- 复制远程仓库地址。
- 回到上层目录,打开 Git Bash here。
- 执行克隆远程仓库的命令,将远程仓库克隆到本地。
5.3 工作区、暂存区、版本库
为了更好的学习 Git,我们需要了解 Git 相关的一些概念:
- 版本库:前面看到的.git 隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
- 工作区:包含.git 文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码。
- 暂存区:.git 文件夹中有很多文件,其中有一个 index 文件就是暂存区,也可以叫做 stage。暂存区是一个临时保存修改文件的地方。
5.4 Git 工作区中文件的状态
Git 工作区中的文件存在两种状态:
- untracked:未跟踪(未纳入被 git 管理的,也就是未加入到暂存区的,也可以叫 unstage)。
- tracked:已跟踪(被 git 纳入管理的),又分为以下几种状态:
- Unmodified:未修改状态,工作区、暂存区和本地仓库所有数据已达到同步。
- Modified:已修改状态,之前已经三个区域都达到同步了,但是修改了工作区或者暂存区。
- Staged:已暂存状态,表示本地仓库都没有这个文件,只有工作区和暂存区有这个文件。
注意:文件的状态会随着我们执行 Git 的命令发生变化。
5.5 本地仓库操作
本地仓库常用命令如下:
5.5.1 git status
执行命令用于查看文件状态:
git status
由于工作区中文件状态的不同,执行git status
命令后的输出也会不同。
5.5.2 git add
执行命令将文件的修改加入暂存区,命令格式:git add fileName
git add hello.txt
加入暂存区后再执行git status
命令,可以发现文件的状态已经发生变化。
5.5.3 git reset
将暂存区的文件取消暂存或者是切换到指定版本:
- 取消暂存命令格式:
git reset 文件名
- 切换到指定版本:
git reset --hard 版本号
git reset hello.txt
注意:每次 Git 提交都会产生新的版本号,通过版本号就可以回到历史版本。
5.5.4 git commit
将暂存区的文件修改提交到版本库,命令格式:git commit -m msg 文件名
# 重新添加到暂存区
git add hello.txt
# 查看文件状态
git status
# 将暂存区的文件提交到本地版本库
git commit -m "初始化文件 hello.txt" hello.txt
解释说明:
-m
:代表 message,每次提交时需要设置,会记录到日志中。- 可以使用通配符 * 一次提交多个文件。
5.5.5 git log
查看提交日志命令:
git log
通过git log
命令查看日志,可以发现每次提交都会产生一个版本号,提交时设置的 message、提交人、邮箱、提交时间等信息都会记录到日志中。
5.5.6 案例:切换版本
- 需求:修改文件内容再次提交,之后进行切换版本,并且重置后指定版本后的版本被删除。
- 实现步骤:
- 修改文件,添加内容 "第一步",保存文件。
- 添加文件到暂存区。
- 提交文件到版本库。
- 查看版本日志。
- 切换到指定版本。
5.6 远程仓库操作
前面执行的命令操作都是针对的本地仓库,下面介绍关于远程仓库的一些操作:
5.6.1 git remote
如果要查看已经配置的远程仓库服务器,可以执行git remote
命令,它会列出每一个远程服务器的简称。如果已经克隆了远程仓库,那么至少应该能看到origin
,这是 Git 克隆的仓库服务器的默认名字。
git remote
5.6.2 git remote add
本地版本库关联添加远程仓库,前提是远程仓库在码云上存在,则本地版本库可以关联添加这个远程仓库,用于以后进行不同操作。
- 命令格式:
git remote add 简称 远程仓库地址
- 环境准备:在码云上添加远程仓库 “repo1”,复制远程仓库地址。
- 本地版本库添加远程仓库演示:
- 切换目录到 repo1 目录下:
cd ../repo1
- 查看当前本地版本库关联的远程仓库信息:
git remote
- 添加关联远程成功执行命令:
git remote add origin https://gitee.com/songyu0102/repo1.git
注意:一个本地仓库可以关联多个远程仓库,也可以通过命令删除关联的远程仓库,命令如下:
git remote rm 远程仓库简称
如果想修改配置关联的远程仓库,需要先删除,之后再添加即可。
5.6.3 git clone(已经演示过)
如果你想获得一份已经存在了的 Git 远程仓库的拷贝,这时就要用到git clone
命令。Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等)。克隆仓库的命令格式:git clone 远程仓库地址
5.6.4 git push
将本地仓库内容推送到远程仓库,命令格式:git push 远程仓库简称 分支名称
- 操作步骤:
- 在 repo1 目录下创建 repo1.txt 文件,添加暂存区,提交到本地版本库。
- 推送到远程仓库。
- 查看远程仓库是否成功,如果有 repo1.txt 文件说明成功。
- 第一次推送使用注意:在使用
git push
命令将本地文件推送至码云远程仓库时,如果是第一次操作,需要进行身份认证,认证通过才可以推送。认证通过后会将用户名和密码保存到 windows 系统中,后续再推送则无需重复输入用户名和密码。
5.6.5 git pull
git pull
命令的作用是从远程仓库获取最新版本并合并到本地仓库。命令格式:git pull 远程仓库简称 分支名称
- 案例:远程仓库添加内容,本地仓库拉取下来
- 操作步骤:
- 在远程仓库 repo1 位置点击 "编辑"。
- 在编辑位置输入 “远程仓库添加内容”,填写提交注释,最后点击 “提交”。
- 本地版本库拉取远程仓库的最新内容与本地合并。
- 查看本地文件 repo1.txt 文件内容。
- 操作步骤:
5.7 分支操作
分支是 Git 使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。本地仓库和远程仓库中都有分支,同一个仓库可以有多个分支,各个分支相互独立,互不干扰。通过git init
命令创建本地仓库时默认会创建一个master
分支。
5.7.1 查看分支
查看分支命令:
git branch
:列出所有本地分支。git branch -r
:列出所有远程分支。git branch -a
:列出所有本地分支和远程分支。
5.7.2 创建分支
创建分支命令格式:git branch 分支名称
5.7.3 切换分支
一个仓库中可以有多个分支,切换分支命令格式:git checkout 分支名称
注意:在命令行中会显示出当前所在分支。
5.7.4 推送至远程仓库分支
推送至远程仓库分支命令格式:git push 远程仓库简称 分支命令
- 案例:在 b1 分支中创建文件并推送至远程仓库的 b1 分支
- 操作步骤:
- 在本地 b1 分支创建文件 hello2.txt,添加到暂存区,提交到本地版本库。
- 推送本地 b1 至远程仓库分支。
- 推送完以后可以查看远程仓库的 b1 分支。
- 操作步骤:
5.7.5 合并分支
合并分支就是将两个分支的文件进行合并处理,命令格式:git merge 分支命令
- 案例:master 分支合并 b1 分支
- 操作步骤:
- 本地 repo1 库切换分支为 master。
- master 分支合并 b1 分支。
- 查看合并后的目录资源结构,发现包含合并过来的 hello2.txt 文件。
注意:由于 b1 是在 master 上创建出来的,所以必须由 master 合并 b1,不可以 b1 合并 master。
- 操作步骤:
六、在 IDEA 中使用 Git
通过 Git 命令可以完成 Git 相关操作,为了简化操作过程,我们可以在 IEDA 中配置 Git,配置好后就可以在 IDEA 中通过图形化的方式来操作 Git。
6.1 在 IDEA 中配置 Git
在 IDEA 中使用 Git,本质上还是使用的本地安装的 Git 软件,所以需要提前安装好 Git 并在 IDEA 中配置 Git。如果 Git 安装在默认目录中(C:\Program Files\Git),则 IDEA 中无需再手动配置,直接就可以使用。
6.2 获取 Git 仓库 - 本地初始化仓库
在 IDEA 中获取 Git 仓库有两种方式:本地初始化仓库和从远程仓库克隆。在 IDEA 中通过如下操作可以在本地初始化一个本地仓库,其实底层就是执行的git init
命令。操作过程如下:
- 依次选择菜单【VCS】---【Import into Version Control】---【Create Git Repository】。
- 在弹出的【Create Git Repository】对话框中选择当前项目根目录,点击【OK】按钮。
操作完成后可以看到当前项目根目录下出现了.git 隐藏目录,并且可以在 IDEA 的工具栏中看到 Git 的相关操作图标。
6.3 Git 忽略文件
为了避免将一些不必要的文件纳入版本控制,我们可以使用.gitignore 文件来忽略这些文件。操作步骤如下:
- 安装忽略文件插件,如果卡主,可以换个网络,如手机热点(安装成功后,重启 idea)。
- 创建文件.gitignore,弹出框里面勾选 java,选中 add。
- 复制以下内容覆盖.gitignore 文件中内容:
# 官方忽略
# 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
hs_err_pid*
# 新增
.classpath
.project
.settings
target
# idea
*.iml
.idea
6.4 本地仓库操作
本地仓库操作:
6.4.1 将文件加入暂存区
当在 Git 工作区新增文件或者对已有文件修改后,就需要将文件的修改加入暂存区。添加后的效果(红色都变成绿色,说明文件已经成功添加到暂存区)。
6.4.2 将暂存区文件提交到版本库
将暂存区文件提交到版本库,可以选择一个文件进行提交,也可以选择整个项目提交多个文件。在 IEDA 中对文件的提交进行了简化操作,也就是如果文件修改后,无需再加入暂存区,可以直接提交。由于提交操作属于高频操作,所以为了进一步方便操作,在 IDEA 的工具栏中提供了提交操作的快捷按钮。
6.4.3 查看日志
查看日志,既可以查看整个仓库的提交日志,也可以查看某个文件的提交日志。
6.5 远程仓库操作
远程仓库操作:
6.5.1 查看远程仓库
操作过程如下:在 IDEA 中选择相应菜单,在弹出的【Git Remotes】窗口中可以看到配置的远程仓库。
6.5.2 添加远程仓库
到码云添加新仓库,复制远程仓库地址。一个本地仓库可以配置多个远程仓库,在【Git Remotes】窗口中点击【+】来添加一个新的远程仓库。
6.5.3 推送至远程仓库
可以通过相应操作将本地仓库文件推送至远程仓库。在弹出的【Push Commits】窗口中可以看到本次推送的文件,点击【Push】按钮即可推送至远程仓库。点击【Commit and Push...】按钮同时完成提交和推送操作。
6.5.4 从远程仓库拉取
可以通过相应操作从远程仓库拉取。由于从远程仓库拉取文件属于高频操作,所以在 IDEA 的工具栏中提供了对应的快捷按钮。在弹出的【Update Project】窗口中点击【OK】。
6.6 获取 Git 仓库 - 从远程仓库克隆
在 IDEA 中从远程仓库克隆本质就是执行的git clone
命令,具体操作过程如下:
- 在 IDEA 开始窗口中点击【Get from Version Control】。
- 在弹出的【Get from Version Control】窗口中输入远程仓库的 URL 地址和对应的本地仓库存放目录,点击【Clone】按钮进行仓库克隆操作。
6.7 分支操作
分支操作:
- 查看分支,本质就是执行
git branch
命令。 - 创建分支,本质就是执行
git branch 分支名
命令。
七、总结
通过本文的介绍,你已经了解了 Git 的基本概念、常用命令以及在 IDEA 中的使用方法。Git 作为一款强大的版本控制工具,能够帮助你更好地管理代码,提高开发效率。在实际开发中,你可以根据具体需求灵活运用 Git 的各种功能,实现代码的高效管理和团队协作。希望本文对你有所帮助,祝你在使用 Git 的过程中取得良好的效果。