简介
介绍:Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类,xml文件,html页面等)
- 代码回溯
- 版本切换
- 多人协作
- 远程备份
概念-仓库
介绍:通过Git仓库来存储和管理源代码文件,Git仓库分为两种,本地仓库和远程仓库
本地仓库:开发人员自己电脑上的Git仓库
远程仓库:远程服务器上的Git仓库,可用于多人协作和远程备份
commit:提交,将本地文件和版本信息保存到本地仓库
push:推送,将本地仓库文件和版本信息上传到远程仓库
pull:拉取,将远程仓库文件和版本信息下载到本地仓库
clone:克隆,将远程仓库所有数据克隆并创建一个仓库
GIt下载与安装
下载
这里以windows系统64位为例,下载地址:
官网:
镜像网站:
https://registry.npmmirror.com/binary.html?path=git-for-windows/
- 选择windows版本
- 选择独立版本的64位windows系统
安装
下载后点击安装,修改安装路径后一路点击next即可
在文件中右键出现Git选项即安装成功
- Git GUI Here:打开Git的图形界面
- Git Bash Here:打开Git的命令行,通常使用命令行执行Git命令
代码托管-远程仓库
介绍:Git的远程仓库可以借助网上提供的代码托管服务来实现,常见的有GitHub、码云、GitLab等,这里以码云为例
码云官网:https://gitee.com/chinaio
码云基本使用-创建仓库
进入码云官网完成用户注册
登录后点击右上角加号即可创建仓库
输入仓库的各种信息,如名称,归属,访问路径等,点击创建
码云基本使用-邀请其他用户
点击仓库的管理页面邀请用户
邀请的方式有多种,选择一项进行邀请,收到通知即可
Git全局配置
介绍:安装Git后需要设置用户名称和eamil地址,用于每次Git提交时标识的用户信息(非码云使用的用户名和邮箱,可以任意设置)
打开Git命令行工具,执行以下命令
- 设置用户信息
git config --global user.name "用户名" git config --global user.email "邮箱地址"
- 查看配置信息
git config --list
Git命令-获取仓库
介绍:要使用Git对代码进行版本控制,首先需要获得Git仓库来操作,获得Git仓库通常有两种方式,一是在本地初始化一个本地Git仓库,二是从远程仓库克隆
本地初始化
- 在任意目录下创建一个空目录作为本地Git仓库
- 在空目录中右键打开Git bash窗口
- 执行命令
git init
在目录中看到.git 文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功
克隆远程仓库
- 在任意目录下创建一个空目录作为Git远程克隆仓库
- 在空目录中右键打开Git bash窗口
- 执行命令(远程Git仓库地址在码云中进行复制)
git clone [远程Git仓库地址]
在目录中看到远程仓库名目录和分级.git文件夹则说明Git仓库创建成功
概念
介绍:以下是对Git仓库的一些概念解释
版本库
仓库的.git文件夹就是版本库,版本库中存储了很多配置信息,日志信息和文件版本信息等,也是源代码版本控制的地方
工作区
包含.git文件夹的目录就是工作区,也称为工作目录,用于存放开发的代码
暂存区
.git文件夹中有一个index文件就是暂存区,也可以叫做stage,暂存区是一个临时保存修改文件的地方,可以对源代码进行版本控制
流程
工作区中的源代码文件可以选择提交到版本库或暂存区
- 将工作区的源代码文件提交到暂存区使用以下命令
git add 文件名
- 暂存区用于存放临时的源代码文件,而需要到版本库才是确认提交,使用以下命令
git commit -m '注释信息' 文件名
工作区文件状态
Git工作区中的文件存在两种状态,其状态会随着我们的提交而改变
- untracked:未跟踪(未被纳入版本控制)
- tracked:已跟踪(被纳入版本控制,指已经进入版本库或暂存区)
- Unomdified:未修改状态
- Modified:已修改状态
- Staged:已暂存状态
查看文件状态
在工作区目录下打开Git命令工具
git status
Git命令-本地仓库操作
以下均在本地仓库工作区中打开Git命令行执行命令
- 查看文件状态
git status
- 将文件的修改加入暂存区
git add 文件名
- 将暂存区的文件取消暂存或切换到指定版本(代码回溯和版本切换)
git reset 文件名 //取消暂存 git reset --hard 版本号 //切换到指定版本
- 将暂存区的文件修改提交到版本库
git commit -m "注释信息" 文件名
- 查看日志(用于查看每次提交的版本库的版本号和提交内容以及提交时间)
git log //从日志中可复制版本号进行回溯
Git命令-远程仓库操作
- 查看连接的远程仓库的别名(默认origin),在远程仓库工作区中打开Git命令行执行命令
git remote //查看连接的远程仓库别名 git remote -v //查看连接的远程仓库的详细信息
- 在本地仓库中关联远程仓库,这样可以进行拉取和推送,在本地仓库工作区中打开Git命令行执行命令(可设置多个)
git remote add 远程仓库别名 远程仓库url
- 删除本地仓库关联的远程仓库(解绑),在本地仓库工作区中打开Git命令行执行命令
git remote rm 仓库别名
- 创建一个远程仓库克隆仓,将Git远程仓库服务器上的所有数据拷贝下来,在需要创建远程仓库的空目录中打开Git命令行执行命令
git clone 远程仓库url
- 将本地仓库内容推送到远程仓库,在本地仓库工作区打开Git命令行执行命令
git push 仓库名 分支名
在码云仓库中可以看到提交信息
- 从远程仓库获取最新版本并合并到本地仓库,在远程仓库工作区中打开Git命令行执行命令
git pull 仓库名 分支名
Git完整操作流程分析
- 本地仓库用于控制本地代码管理,不能进行远程仓库的推送和拉取操作
- 本地仓库可以与远程仓库进行关联,关联后即可进行推送和拉取
- 推送:一定要经过先提交到暂存区再到版本库,再推送的一个过程
- 远程仓库的创建有两种,一种是直接克隆远程仓库的克隆库
- 这种方式会将远程仓库的所有数据全部拷贝
- 克隆只需克隆一次,以后克隆仓再从远程仓库获取最新版本可以直接进行拉取
- 另一种是将本地仓库与远程仓库关联,从远程仓库进行拉取操作即可获得远程仓库的数据而不会覆盖掉本地仓库内容
Git命令-分支
介绍:在版本控制过程中,同时推进多个任务,我们就可以创建每个任务单独的分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开,开发自己分支的时候,不会影响主线分支的运行,对初学者来说,分支可以简单的理解为副本,一个分支就是一个单独的副本(分支底层其实也是指针的引用),各个分支在开发过程中,如果一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可
例如:
- 在master这个主线上运行,运行的同时要增加功能,那我们就可以把master赋值一份出来,在复制的地方进行开发,在开发完功能后就可以更新版本正常使用
- 当我们引入新功能有bug,就可以从master分支再引一个分支hot-fix(热修分支),对代码进行修改,修改后再合并到master
- 查看该仓库的分支(本地仓库默认有matser分支)
git branch //列出所有本地仓库分支 git branch -r //列出所有远程仓库分支 git branch -a //列出所有本地分支和远程分支
创建分支git branch 分支名
切换所使用的分支git checkout 分支名
这里我们查看仓库的分支,可以看到master分支前有*符号,表示当前使用的是master分支,然后我们创建一个分支other,并将使用的分支切换到other
将另一个分支合并到当前分支(合并后相同源代码名会覆盖)
git merge 分支名
- 删除分支
git branch -d 分支名
git命令-标签
介绍:标签(Tag)是用来给特定的提交(commit)打一个简单的标记,通常用于标识版本发布和快照,即版本的标记
- 列出已有的标签
git tag
创建标签标识当前源代码内容
git tag 标签名
- 将标签推送至远程仓库
git push 远程仓库名 标签名
- 切换到指定标签状态
git checkout -b 分支名 标签名
分支和标签的区别
目的和用途
- 标签(Tag)
- 目的:用于标记代码库的某个特定点,通常是用于标识发布版本(如v1.0, v2.0等)。
- 用途:帮助在代码库中标记重要的版本,如发布版本、里程碑版本等。标签是静态的,不会随着代码的修改而改变,因此通常用于表示代码库中的一个固定点。
- 分支(Branch):
- 目的:用于开发新的功能、修复bug或进行实验性开发。
- 用途:分支允许开发者在不同的开发路径上工作,而不影响主分支(如main或master)。通过创建分支,可以在不影响主要开发分支的情况下,开发新的功能、修复bug或尝试实验性代码。
行为和特性
- 标签(Tag):
- 固定性:标签一旦创建,就不会移动。这意味着标签总是指向创建时的那个特定提交
- 不可变性:标签通常用于标识重要的里程碑,如发布版本,因此不应该被更改
- 存储位置:标签存储在.git/refs/tags目录下
- 分支(Branch):
- 动态性:分支是一个可移动的指针,它会随着新的提交而向前移动
- 灵活性:分支可以用来开发新的功能、修复bug或进行实验性开发,开发完成后可以合并回主分支
- 存储位置:分支存储在.git/refs/heads目录下
IDEA-集成Git
指定配置Git版本
- 打开IDEA的设置找到版本控制中的Git选项,指定Git的可执行文件目录(Git安装目录/Git/cmd/gitk.exe),点击测试出现Git版本号即成功
创建Git仓库
- 点击主菜单中的svc的创建git仓库,将仓库选择在项目中即可创建本地仓库
若要使本地仓库与远程仓库关联,可以在主菜单的Git中的管理远程中添加仓库URL(可设置多个)
若要克隆远程仓库,点击主菜单的Git中的克隆选项输入仓库URL
添加和提交
- 添加:IDEA自动将所有源代码添加到暂存区而无需再手动添加
- 提交:使用快捷键Alt+0或者项目选项旁的Git分支选项选择提交
- 默认展示所有文件的提交选项,可以点击小眼睛选择以目录和模块未分组提交依据
- 只需要提交源代码,编译后生成的字节码和IDEA自身的配置文件不需要提交,可以在项目中创建.gitignore文件,来配置忽略提交的文件,复制以下即可
HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/ ### STS ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### NetBeans ### /nbproject/private/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ build/ !**/src/main/**/build/ !**/src/test/**/build/ ### VS Code ### .vscode/
查看日志和版本回溯
- 点击左下角的Git控制台,即可查看日志,右键提交的代码即可代码回溯或还原提交
推送和拉取
- 推送:可以在提交时选择提交并推送,或使用快捷键Ctrl+Shift+K,或项目选项旁的Git分支选项选择推送
- 拉取:右键项目选择Git中的拉取或者在主菜单中Git的拉取,输入拉取的远程仓库别名和分支名
分支
- 查看分支和创建分支:项目选项旁的Git分支选项可以查看分支和创建分支
- 合并分支和删除:在查看分支时的左边扩展箭头即可与其他分支合并或者删除
习惯
- 先拉取再推送