1.下载并安装git
Windows系统下的Git安装教程👇:
Windows系统下的Git安装教程_零号萌新的博客-CSDN博客_windows系统安装git
2.第一次使用需要设置签名信息
第一种方法①:👇
添加之后用:wq退出vim并保存
第二种方法②:👇
a) cd ~ 进入到根目录
b) ls -a查看.gitconfig文件夹(config是配置)
c) 打开vim .gitconfig 按i进入输入模式 删掉[user]内容
d) 打开原本的文件夹 vim编辑模式添加内容 将其由工作区提交到暂存区再提交到本地仓库(到这里会报错 提示please tell me who you are
e) git config --global user.email "邮箱名"
git config --global user.name "用户名"
3.在git中是可以使用linux的
补充相关命令👇:
mkdir
创建文件夹
touch
创建文件
rm -rf
文件或者文件夹名称
删除指定的文件或者文件夹
ls -a
查看当前目录内的文件列表包含隐藏文件
cd
路径
进入指定的目录
4.初始化git仓库 git init
(如何判断当前文件夹是否有git仓库?
- 输入ls -a
- 返回如图所示,即为有git仓库
- 没有的话就git init~
)
(rm -rf .git👈这个命令是删除仓库的)
5.git status 👈查看仓库状态
↑这是没有被追踪起来的文件,存在于工作区域
↑这是被追踪起来的文件,这时git就可以监听到文件内容的变化,存在于暂存区
如何将工作区的内容提交到暂存区?
git add . /文件名
接着就可以把它提交到git仓库↓
git commit -m "描述信息"
- 接着就可以再对文件进行修改(1.打开编辑器修改 2.使用vim编辑模式修改)
讲一下vim编辑模式:
Vim index.html(←文件名) 然后回车进入编辑模式
跳转之后必须要按一下i键,才可以进入
按esc+:wq是保存退出 按esc+:!q是直接退出不保存
- 如何同时提交多个文件到暂存区
- Git add .(所有文件都存到了暂存区)
- Git add index.html dome.html(多个文件名之间用空格隔开,并列存在)
- 如何将暂存区的文件撤销到工作区
Git rm –-cached dome.html(←文件名)
- 如何查看版本的历史记录
Git log 内里包含哈希值、作者、时间、描述信息
示例↓:
不想要这么详细的信息?想每条日志只显示一行?
命令:git log --pretty=oneline
- 版本的前进与后退
Git reflog
HARD@对应回滚版本,底层操作需要移动多少步
- Git reset –-hard 哈希值(以哈希值作为索引 前进和后退都可以实现)
- 使用^符号,只能后退
Git reset –-hard HEAD^
一个^后退一步,n个^就表示后退n步
- 使用~符号,只能后退
Git reset --hard HEAD~n
N指定步数,表示后退n步
- 删除文件并恢复
前提:删除文件前,此文件需要已经提交过本地库,才可恢复
删除:rm 文件名.txt
命令:git reset –hard <历史记录索引值>
●删除操作已经提交到本地库:指针位置指向历史记录
●删除操作尚未提交到本地库:无法恢复
- 约定式提交规范(先npm init哈)
除了 代码格式规范 之外,还有另外一个很重要的规范就是 git
提交规范!
明确概念:Cl就是命令:git commit -m “changelist”中的引号部分
为了规范我们提交代码,git提交规范化工具应运而生 而commitizen就是其中的佼佼者
Commitizen仓库名是cz-cli,提供了一个git cz的指令用于代替git commit
简单一句话介绍它:
当你使用 commitizen
进行代码提交(git commit)时,commitizen
会提交你在提交时填写所有必需的提交字段!
自定义提示文件文字版(可直接复制):
module.exports = {
// 可选类型
types: [
{ value: 'feat', name: 'feat: 新功能' },
{ value: 'fix', name: 'fix: 修复' },
{ value: 'docs', name: 'docs: 文档变更' },
{ value: 'style', name: 'style: 代码格式(不影响代码运行的变动)' },
{
value: 'refactor',
name: 'refactor: 重构(既不是增加feature,也不是修复bug)'
},
{ value: 'perf', name: 'perf: 性能优化' },
{ value: 'test', name: 'test: 增加测试' },
{ value: 'chore', name: 'chore: 构建过程或辅助工具的变动' },
{ value: 'revert', name: 'revert: 回退' },
{ value: 'build', name: 'build: 打包' }
],
// 消息步骤
messages: {
type: '请选择提交类型:',
customScope: '请输入修改范围(可选):',
subject: '请简要描述提交(必填):',
body: '请输入详细描述(可选):',
footer: '请输入要关闭的issue(可选):',
confirmCommit: '确认使用以上信息提交?(y/n/e/h)'
},
// 跳过问题
skipQuestions: ['body', 'footer'],
// subject文字长度默认是72
subjectLimit: 72
}
有不同见解欢迎评论区讨论~