Git使用详解:从安装到精通
前言
什么是Git
Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。
可以理解:
git是一个管理源代码的工具,主要用于企业团队开发。
Git的用途
- 代码回溯:快速回到某个历史版本;
- 版本切换:不同的项目可能有不同的版本(代码不相同),在不同的版本间进行切换;
- 多人协作:多个人之间代码共享;
- 远程备份:git通过仓库管理代码;
Git概述
Git简介
Git不关心管理什么文件(对于视频,音频一样管理),当然,我们主要是对代码进行管理(对管理对象并不关注)。
Git下载与安装
注意:Git的版本不要低于2.20版本,否则可能无法在idea中集成Git工具
Git代码托管服务
所谓的代码托管:实际上就是搭建Git远程仓库时使用。(Git的托管服务实际上就是搭建远程Git仓库)
常见的Git代码托管服务
使用码云代码托管服务
码云可以理解为一个网站,上面可以进行Git托管我们的源代码,相比于外国网站github,码云的速度比较快。
1.注册登录码云账号:
2.使用码云创建远程仓库:
每一个远程仓库使用一个网络地址指代:本质上使用url地址代替远程仓库的路径
Git常用命令
Git全局设置
获取Git仓库
本地初始化一个git仓库
执行步骤如下:
1.在任意一个目录下创建一个空目录作为我们的本地Git仓库
2.进入这个目录中,点击右键打开Git bash窗口
3.执行命令 git init
如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹,主要看是否打开了查看隐藏文件夹的选项)则说明Git仓库创建成功
从远程仓库克隆
- 此时可以将我们在gitee上创建的远程仓库克隆到本地(url为gitee中远程仓库的网络地址)
- 在本地初始化Git仓库和从远程仓库克隆(本质上都是创建一个本地仓库来管理源文件)
- 注意:第一次克隆远程仓库需要对应gitee的账号和密码
工作区、暂存区、版本库
- 版本库:.git隐藏文件夹就是版本库。里面存放着配置信息、日志信息和文件版本信息等
- 工作区:包含.git的文件夹目录就是工作区,存放开发过程中的源代码
- 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
暂存区操作
在本地仓库中演示暂存操作 ,我们随便创建一个空的后缀名.txt的文件,命名为User。右键进入命令行界面
- 没有文件是没有暂存区的;
- 只能在工作区中进行命令行操作,它是一个分支(所有文件都有暂存区,只能在工作区进行命令行操作)
Git工作区中文件的状态
本地仓库操作
查看文件状态
此时修改文件后查看文件状态:例如在User.txt中随便添加一段文字
红色表示已修改
绿色表示已暂存
将文件的修改加入暂存区
取消暂存或切换版本
取消暂存,文本又回到已修改未暂存的状态了
切换到指定的版本
使用命令 git reset --hard 指定的版本随机序号
提交文件到版本库
文件需要先添加到暂存区后,才能提交到版本库中
注意:当该命令没有带-m参数(提交时保留一些额外信息)时,会跳出commit change log (COMMIT_EDITMSG)界面,这个是vi编辑器(也有可能是vim编辑器),和linux使用的vi编辑器是一样的,因为涉及到是否要保存编辑内容,所以退出命令有多种。
vi编辑器操作如下:
输入参数之后,出现新的命令窗口,此时输入i进入编辑模式。插入信息。然后按esc退出编辑模式
然后输入:wq 表示保存退出
注意:在已经关联了远程仓库的本地仓库中,如果上传文件失败,需要先将远程仓库中的文件pull下来,然后再上传。
将文件提交后若再次进行修改,需要放到暂存区然后再次提交(版本修改后,显示红色,再次提交到暂存区时变成绿色)
查看日志
可以在日志中查看不同的提交版本,此时可以通过reset的git命令切换不同的版本(通过reset进行版本回溯(指定版本)和取消暂存 )
远程仓库操作
查看远程仓库
如果想要查看已经配置的远程仓库服务器,可以运行git remote 命令,它会列出每一个远程服务器的简写。如果我们已经克隆了远程仓库,那么至少应该能看到origin,这是克隆的仓库服务器的默认名字
本地添加远程仓库
这里的origin1是对我们添加的远程仓库起一个别名
需要注意:
操作远程仓库的命令,必须在已经克隆的远程仓库下使用(默认仓库服务器名字为origin)
git remote add 只是在您的git config中创建一个条目,指定特定URL的名称。
你必须有一个现有的git仓库来使用它。需要init
git clone通过复制位于您指定的URI上的现有git存储库来创建新的git存储库。不需要init
也就是说添加远程仓库,需要初始化,而克隆远程仓库不需要初始化
如果我们在一个空文件夹下直接使用git remote 命令会出现如下提示:
此时需要进行git init 初始化,此时在使用git remote add 命令就可以关联一个远程仓库了
添加远程仓库的命令:
git remote add <shortname><url>
shortname是简称的意思,一般约定俗成指定为origin ,url是远程仓库的地址
克隆远程仓库到本地
命令格式:
git clone [url]
推送至远程仓库
origin是远程仓库名
master是分支名
在使用git push命令将本地文件推送至码云远程仓库时,需要进行身份认真,认真通过后才可以推送
从远程仓库拉取
命令格式:
git pull origin master
从远程仓库拉取时,指定拉取的远程仓库名和分支名
分支操作
将工作从主线中分离,同一个仓库可以有多个分支,每个分支相互独立,互不干扰
git init 命令 默认创建一个master分支
查看分支
创建分支
切换分支
推送至远程仓库分支
合并分支
命令格式:
git merge [name]
合并时冲突问题:
两个分支中同一个文件都修改了,再次合并就会出错,手动处理错误,即自己修改分支中的文件,然后提交到本地仓库(注意出现错误可以加上命令 -i)
标签操作
- 因为分支是一个动态的概念,会向下继续发展的。
- 因此使用标签标记分支某个重要的功能节点,标签是静态的。
- 标签:表示的是某个分支某个时间点的状态,是个静态的概念
- 使用静态的标签来标记分支中重要的功能节点
Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。(比如项目的不同版本号)
检出标签:需要新建一个分支来指向某个标签
Git检出标签是指将代码库恢复到某个特定的标签状态,标签可以是某个特定的版本号、发布日期或其他自定义标识符,用于指定代码库的某个特定版本。通过检出标签,您可以让代码库回到过去的某个特定状态,以便进行比较、回归测试或其他操作。
在IDEA中使用Git
在idea使用git,就是在项目的根目录下创建一个本地仓库,并且关联一个远程仓库,先将项目提交到本地仓库,然后推送到远程仓库
当然,也可以直接克隆远程仓库。(本质上是初始化一个本地仓库管理源文件)
idea中使用git的方式可以更加便捷,这里不详细说明了。