Git的安装与使用
Git是一个免费开源的分布式版本控制系统,系统设计的目的是快速和高效地处理从小型到大型项目的所有内容
下载
官方下载网址:https://git-scm.com/downloads
阿里云镜像站下载网址:https://registry.npmmirror.com/binary.html?path=git-for-windows/
Standalone Installer :安装版本
Portable("thumbdrive edition") :便携版本(免安装版本)
这里选择下载的是 64位普通安装版本
官网下载文件比较慢,建议使用阿里云镜像站下载文件
安装
执行安装包,选择合适的路径,其他选项按照默认配置即可
右键选择Open Git Bash here或者进入安装路径执行git-bash.exe 进入Git命令行,输入下面命令可以查询Git版本号
git --version
能正常显示版本号则说明安装成功
配置
1.跳过SSL证书验证
在github上使用https克隆(Clone)代码时会出现以下报错
fatal: unable to access 'https://github.com/spring-projects/spring-framework.git/': SSL certificate problem: unable to get local issuer certificate
大意是"SSL证书问题:无法获得本地颁发者证书",当通过HTTPS访问Git远程仓库时,如果服务器上的SSL证书未经过第三方机构认证,git就会报错(没有签署过的证书存在风险)。
可以配置跳过SSL证书验证来正常克隆代码
在git命令行中执行以下命令:
git config --global http.sslverify false
执行后可以在C:\Users\用户xx路径下的.gitconfig配置文件看到新增的配置参数
[http]
sslverify = false
2.设置用户签名
当使用git提交代码时会出现以下报错
Author identity unknown
大意是"作者身份不明",需要设置用户签名,此用户签名与其他账号没有关系,仅作为本地提交代码的一个标识
在git命令行执行以下命令:
git config --global user.name test
git config --global user.email [email protected]
执行后可以在C:\Users\用户xx路径下的.gitconfig配置文件看到新增的配置参数
[user]
name = test
email = [email protected]
Git的工作流程
Clone(克隆):从远程仓库克隆代码到本地仓库
Fetch(抓取):从远程仓库抓取代码到本地仓库,不进行合并
Checkout(检出):从本地仓库检出一个分支到工作区
Pull(拉取):从远程仓库抓取到本地仓库(Fetch),自动进行合并(Merge),然后检出当前分支到工作区(Checkout)
Add(添加):在工作区改动的代码提交到暂存区
Commit(提交):提交到本地仓库,本地仓库中保存修改的各个历史版本
Push(推送): 将本地仓库中改动的代码推送到远程仓库
Git常用命令
git init
在当前路径下初始化git仓库,生成.git文件夹
git status
查看git状态
git add
将改动代码由工作区添加到暂存区
eg:
添加所有改动文件 git add -all | git add .
添加当前目录下的所有改动的java文件 git add *.java
git commit -m "提交说明"
将改动的代码由暂存区提交到本地仓库
git log
查看提交日志
git reset --hard 版本号
将代码回退到某个指定的版本
git branch
查看所有分支
git checkout 文件名
将文件尚未添加到暂存区的修改全部撤销
git checkout 分支名称
切换分支
git checkout -b 分支名称
创建并切换分支
git branch -d 分支名称
删除分支
git merge 分支名称
将其他分支合并到当前分支
eg:
在master分支执行,将dev分支合并到master
git merge dev
git clone
将远程仓库代码克隆到本地仓库
git push
将本地仓库改动代码提交到远程仓库
git pull
将远程代码更新到本地
Git约定式提交
约定式提交规范是一种基于提交信息的轻量级约定。它提供了一组简单规则来创建清晰的提交历史;这更有利于编写自动化工具。通过在提交信息中描述功能、修复和破坏性变更,使这种惯例与 SemVer 相互对应。
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
type: 必选,提交的类型
scope: 可选,提交的影响范围
subject: 必选,提交的简短描述
body: 可选,消息体
footer: 可选,页脚
type(提交的类型):
feat: 新增一个功能
fix: 修复了一个BUG
docs: 只涉及到文档的变更
style: 不影响代码语义(格式化)
refactor: 代码重构,既不修复错误也不添加功能
perf: 改进性能的代码改动
test: 添加测试用例
build: 影响构建系统或外部依赖关系的变更
ci: 更改持续集成文件或脚本
chore: 其他,不修改src或test文件
revert: 回退提交
scope(提交的影响范围):
可以按照模块、包进行划分
subject(提交的简短描述):
首字母小写,不以句号结尾
body(消息体):
用于介绍修改的原因以及详细内容
footer(页脚):
可以用于添加问题单号,修改时间之类的,作为提交信息的结尾
参考网址
git官方文档: https://git-scm.com/doc
约定式提交官网: https://www.conventionalcommits.org/zh-hans/v1.0.0/