前言
本章将重点讲解Git的使用。Git是是目前世界上最流行的版本控制系统,广泛应用于软件开发中,帮助开发者管理代码的变更历史,支持多人协作开发。了解如何使用Git,如何提交代码,如何解决冲突,能帮助我们更快的上手团队项目
Git的下载与初始化配置
关于Git的下载可以通过官网进行下载,以下是官网链接:
https://git-scm.com/downloadshttps://git-scm.com/downloads

图1.如何下载Git
在下载完Git后,我们可点击右键,选择Open Git Bash here打开Git命令窗口

图2.打开Git命令窗口
打开窗口后,我们可以通过以下命令对Git进行简单的使用以及配置:
1.**使用git -v命令查看Git版本信息**
git -v

图3.查看Git版本信息
2.**使用git -config命令配置信息**
git config --global --list //查看配置信息
git config --global user.name "名字" //配置用户名
git config --global user.email "邮箱" //配置用户邮箱
git congig --global credential.helper store //保存配置信息
//其中--global代表全局配置,所有仓库都生效
//可替换为--system,代表系统配置,对所有用户的生效

图4.初始化Git配置信息
Git中新建仓库
** 在Git中有两种命令用于创建仓库,所谓仓库就类似于文件夹,区别于普通文件夹的点在于仓库存在一个隐藏的.git文件,该文件存放了仓库的所有数据,若删除了.git文件则代表删除了该仓库**。以下便是创建仓库的两种方式:
1.使用git init命令在指定文件夹下创建仓库
git init

图5.使用git init命令创建仓库
2.使用git clone命令克隆远程仓库
git clone "远程地址"
示例:git clone https://github.com/3020Xmy/GPTDemo

图6.使用git clone命令克隆远程仓库
Git的工作区域和文件状态
Git的工作区域分为工作区,暂存区和本地仓库,可参考下图:

图7.Git的工作区域
Git的文件状态分为以下四种:
1.**未跟踪**:新创建的文件,未被Git管理的文件
2.**未修改**:被Git管理的文件,但内容未被修改的文件
3.**已修改**:被Git管理的文件,且内容被修改的文件
4.**已暂存**:在已修改的状态下,被添加到暂存区的文件
Git中查看操作和提交记录
由于在多人项目中,每一个人的操作和提交记录都不一样,我们可以通过以下几个命令查看用户的操作记录和提交记录:
1.**使用git reflog命令查看操作历史记录**
git reflog

图8.查看操作历史记录
2.**使用git log命令查看提交目录**
git log

图9.查看提交目录
3.**使用git log --online命令查看简洁的提交记录**
git log --online

图10.查看简洁的提交记录
Git中添加和提交文件
** **在Git中如果要把写好的代码提交到项目中,需要将存放于工作区的文件使用add指令提交至暂存区后,再使用commit命令提交至本地仓库,下面介绍几个命令方便对文件进行状态的跟踪,添加和提交等操作
1.**使用git status命令查看仓库状态**
git status
2.**使用git add命令将文件添加至暂存区**
git add 文件名 //添加指定文件
git add . //添加所有文件
示例:git add 1.txt
3.**使用git commit命令将文件提交至本地仓库**
git commit -m "提交备注" //使用-m备注提交的信息
git commit //提交至本地仓库(默认跳转到Vim添加备注信息)
示例:git commit -m "第一次提交"
4.**使用git commit命令将文件提交至本地仓库**
git commit -a -m "提交备注" //一次性完成添加和提交文件
示例:git commit -a -m "第一次提交"
针对以上几个命令,是我们在使用Git的时候比较常用的命令

图11.文件的添加和提交操作
Git中回退提交版本
由于使用Git提交版本不一定是一次,而是多次。为了在当前版本出现问题后,我们能通过还原之前的代码来使其重构项目(当然这是下下策,但是好用,嘎嘎好用)。要实现这一功能,我们需要使用reset命令:
1.**使用git reset --hare命令回退版本,工作区和暂存区不会保存内容**
git reset --hare "版本号"

图12.使用git reset --hare命令回退版本
2.**使用git reset --sort命令回退版本,工作区和暂存区会保存内容**
git reset --sort "版本号"

图13.使用git reset --sort命令回退版本
3.**使用git reset -- mixed命令回退版本,工作区保存内容,暂存区不保存内容**
git reset -- mixed "版本号"

图14.使用git reset -- mixed命令回退版本
Git中查看版本间的差异
在使用Git提交的版本之间会存在代码或文件间的差异,要阅读差异了解版本迭代后更新了什么数据,可以使用diff命令来查看版本间的差异,以下便是git diff命令的使用方式:
1.**使用git diff命令比较工作区和暂存区间的差异**
git diff
2.**使用git diff HEAD命令比较工作区和暂存区与本地仓库间的差异**
git diff HEAD
3.**使用git diff --cached命令比较暂存区与本地仓库间的差异**
git diff --cached
4.**使用git diff --staged命令比较暂存区与本地仓库间的差异**
git diff --staged
5.**使用git diff命令比较版本间的差异**
git diff "版本号1" "版本号2"
6.**使用git diff命令比较版本间指定文件的差异**
git diff "版本号1" "版本号2" "文件名"
7.**使用git diff命令比较分支间的差异**
git diff "分支号1" "分支号2"

图15.使用git diff命令查看版本间的差异
Git中删除文件
** ** Git中删除文件的操作与Linux中类似,也是使用rm命令,区别在于前面还需要加上git,而且在使用Git删除文件后,不要忘记提交,以下就是rm命令的使用方法:
1.**使用git rm命令将文件从工作区和暂存区删除**
git rm "文件名"
2.**使用git rm --cached命令把暂存区中的文件删除,保留工作区的文件**
git rm --cached "文件名"
3.**使用git rm命令递归的删除某个目录下的所有文件**
git rm -r *

图16.使用git rm命令删除指定文件
Git中忽略指定文件
在Git中存在一个.gitignore文件,该文件用于将指定的文件忽略,不保存至版本库中。在Git中有以下几个文件建议忽略:
1.**系统或者软件自动生成的文件**
2.**编译产生的中间文件和结果文件**
3.**运行时生成的日志文件,缓存文件,临时文件**
4.**涉及身份,密码,口令,密钥等敏感信息文件**
** **如何将指定的文件添加至.gitignore文件中呢?可以使用以下命令:
** **1.使用echo命令将指定文件添加至.gitignore文件
echo "文件名" > .gitignore

图17.使用echo命令忽略指定文件
2.**使用vi命令修改.gitignore文件忽略指定文件 **

图18.使用vi命令忽略指定文件
使用.gitignore命令忽略的文件命名规则符合Blob模式的匹配,具体参考如下:
1.*:匹配任意字符
2.?:匹配单个字符
3.[]:匹配列表中单个字符
4.**/:匹配任意长度的目录结构,包括子目录
*.txt //将匹配任何以 .txt 结尾的文件,如WildPointer.txt 等
?.txt //将匹配任何以单个字符开头和.txt结尾的文件,如a.txt等
[abc].txt //将匹配以a、b或c开头和.txt结尾的文件,如a.txt等
**/*.txt //将匹配任意目录下的任何.txt 文件
PS:**使用.gitignore命令忽略的文件不能是已经提交到版本库中的文件**
Git中配置SSH密钥
要使用Git关联本地仓库和远程仓库,先需要在GitHub中创建一个仓库,具体参考下图:

图19.在GitHub中创建仓库
创建好仓库后,我们需要配置SSH密钥,以下是配置SSH密钥的步骤:
1.**进入Git根目录中的.shh文件(位于安装Git的路径下的etc文件中)**
2.**使用ssh-keygen -t rsa -b 4096命令新建SSH密钥**
ssh-keygen -t rsa -b 4096
3.**生成的文件中,将以.phb结尾的文件(公钥文件)设置到GitHub中**

图20.新增SSH密钥
4.**创建config文件,在访问GitHub时指定使用的SSH密钥**
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.shh/"文件名"
PS:用于博主已经配置了SSH密钥,所以这里简略概括流程,具体可以百度其他详细教学,具体的了解配置SSH密钥的过程,确保密钥的配置成功
Git中关联克隆仓库
在Git中可以使用clone命令克隆仓库,在克隆的实现前需要先配置好SSH密钥
git clone "仓库地址"
示例:git clone https://github.com/3020Xmy/GPTDemo
Git中关联本地仓库和远程仓库
当我们在GitHub创建好仓库后,我们先在本地创建好仓库,返回到GitHub创建仓库完成的页面会提示你如何关联本地仓库:

图21.关联本地仓库和远程仓库
在关联完本地仓库和远程仓库后,我们可以使用git remote -v命令查看当前窗口对应的远程仓库和别名:
git remote -v

图22.查看当前仓库关联远程仓库
Git中拉取远程仓库内容和提交本地仓库
在Git中要实现拉取远程仓库内容和提交本地仓库分别需要执行两个命令:
1.**git pull**:将远程仓库的内容更新至本地仓库
git pull //将远程仓库的内容更新至本地仓库
2.**git push**:将本地仓库的内容更新至远程仓库
git push //将本地仓库的内容更新至远程仓库
Git中的分支
Git 分支是 Git 的一个核心功能,它允许开发者在不同的开发线上独立工作,而不会影响主代码库。以下是 Git 分支的一些基本概念和操作:
**** 1.主分支****:通常是主要的、稳定的分支,包含了所有经过测试和审核的提交
**** 2.开发分支****:通常基于主分支创建,用于开发新功能或进行较大更改
**** 3.特性分支****:从开发分支创建,用于开发特定的新功能或修复一个特定的问题
**** 4.发布分支****:通常在准备发布新版本时创建,用于最终的测试和准备发布

图23.分支示例
在了解Git中分支的概念后,我们需要了解Git中对分支的操作:
1.**git branch命令查看当前仓库的所有分支**
git branch
2.**git branch "分支名"命令创建新的分支**
git branch "分支名"
示例: git breanch Wild
3.**git checkout "分支名"命令切换到指定的分支**
git checkout "分支名"
示例:git checkout Wild
4.**git switch "分支名"命令切换到指定的分支**(建议使用)
git switch "分支名"
示例:git switch Wild
5.**git merge "分支名"命令将指定的分支合并到当前分支**
git merge "分支名"
示例:git merge Wild
6.**git log --graph --oneline --decorate --all命令查看分支图**
git log --graph --oneline --decorate --all
7.**git branch -d "分支名"命令删除被合并的分支(只能删除被合并的)**
git branch -d "分支名"
示例:git branch -d Wild
8.**git branch -D "分支名"命令强制删除分支**
git branch -D "分支名"
示例:git branch -D Wild

图24.分支创建与查看示例
PS:使用git switc切换分支是因为该命令更直观,且会提供异常警告
Git中解决合并冲突
在合并分支时,可能会发送合并冲突的问题,这通常发生在两个或多个开发者对同一部分代码进行了更改,而这些更改在合并时无法自动合并,此时则需要我们解决冲突,具体操作如下:
1.冲突产生的提示:

图25.冲突提示
2.查看冲突文件

图26.查看冲突文件
3.解决冲突

图27.解决冲突
版权归原作者 Wild_Pointer. 所有, 如有侵权,请联系我们删除。