1、git安装
git官网:https://git-scm.com/ 一直下一步即可
git --version 安装后查看git的版本信息
2、git配置
1)配置用户名和邮箱(邮箱用于测试发送测试信息)
git config --global user.name "用户名"
git config --global user.email "邮箱"
git给命令起别名
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
初始化仓库
git init
C(新增)
在工作目录中新增文件
git status
git add ./
git commit -m "msg"
U(修改)
在工作目录中修改文件
git status
git add ./
git commit -m "msg"
D(删除 & 重命名)
git rm 要删除的文件 git mv 老文件 新文件
git status git status
git commit -m "msg" git commit -m "msg"
R(查询)
git status 查看工作目录中文件的状态(已跟踪(已提交,已暂存,已修改)未跟踪)
git diff 查看未暂存的修改
git diff --cache 查看未提交的暂存
git log --oneling 查看提交记录
git分支
HEAD的本质指向一个分支,分支的本质其实就是一个提交对象!
HEAD: 是一个指针,他默认指向master分支,切换分支时其实就是让HEAD指向不同的分支,每次有新的提交时,HEAD都会带着当前指向的分支一起向前移动
git log --oneline --decorate --graph --all 查看整个项目的分支图
git branch 查看分支列表
git branch -v 查看分支指向的最新的提交
git branch branchname 在当前分支对象上创建新的分支
git checkout branchname 切换分支
git checkout -b branchname 创建&切换分支
git branch branchname commithash 在指定的提交对象上创建新的分支 版本穿梭
git branch -d branchname 删除空的分支 删除已经被合并的分支
git branch -D branchname 强制删除分支
git merge branchname 合并分支
快进合并 --> 不会产生冲突
典型合并 --> 有机会产生冲突
解决冲突 --> 打开冲突的文件 进行修改 add commit
git branch --merged 查看合并到当前分支的分支列表
一旦出现在这个列表中,就应该删除
git branch --no-merged 查看没有合并到当前分支的分支列表
一旦出现在这个列表中,就应该观察一下是否需要合并
切换分支时候注意:每次切换分支前,当前分支一定要是干净的,处于是已提交状态。
在切换分支时候,如果分支上有未暂存的修改(第一次)或者未提交的暂存(第一次)分支是可以切换成功的,但是这种操作可能会污染其他分支。
切换分支更改三个区域:HEAD、暂存区‘、工作目录。
在分支上的工作做到一半时,如果有切换分支的需求,我们应该将现有的工作存储起来
git stash 会将当前分支上的工作推到一个栈中
分支切换,进行其他工作,完成其他工作后,切回原分支
git stash apply 将栈顶的工作内容还原,但不让任何内容出栈
git stash drop 去除栈顶的工作内容后,就应该将其删除(出栈)
git stash pop git stash apply + git stash drop
git stash list 查看存储
cheackout深入理解
git checkout branchname 跟git reset --hard commithash特别像
共同点:
都需要重置HEAD、暂存区、工作目录
区别:
checkout对工作目录是安全的 reset --hard是强制覆盖
checkout动HEAD时不会带着分支走而是切换分支
reset --hard时是带着分支走
checkout + 路径
git checkout commithash filename 重置暂存区,重置工作目录
git checkout -- filename 重置工作目录
git后悔药
工作区
如何撤回自己在工作目录中的修改:git checkout --filename
暂存区
如何撤回自己的暂存:git reset HEAD filename
版本库
如何撤回自己的提交:git commit --amend (注释写错了,重新给用户一次机会改注释)
git reset 版本回退
1、git reset [–mixed] HEAD~1
回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也不受影响)
用commithash的内容重置HEAD内容
2、git reset –soft HEAD~1
回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响)
用commithash的内容重置HEAD内容 重置暂存区
3、git reset –hard HEAD~1
回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换
用commithash的内容重置HEAD内容 重置暂存区 重置工作目录
路径reset
所有的路径reset都要shenglue第一步!!!
第一步是重置HEAD内容
提交对象 指向一个树对象 树对象又很有可能指向多个git对象 一个git对象代表一个文件!!
HEAD可以代表一系列文件的状态
git reset [--mixed] commithash filename 用commithash中filename的内容重置暂存区
eslint
eslint是js代码的检查工具
下载:npm i eslint -D
使用:生成配置文件 npx eslint --init
检查js文件 npx eslint 文件名
eslint结合git
husky:哈士奇,为git仓库设置钩子程序
使用
在仓库初始化完毕之后,再去安装哈士奇
在package.json文件写配置
"husky":{
"hooks":{
"pre-commit": "npm run lint"
// 在git commit之前一定要通过npm run lint的检查
// 只有npm run lint不报错时 commit才能真正的运行
}
}