基础
一、命令
1. 初始化
1.git init 创建一个.git的文件夹,初始化一个本地git仓库
2. 获取项目
1.git clone
获取一个url对应的远程report, 创建一个local copy.
一般的格式是git clone [url].
clone下来的report会以url最后一个斜线后面的名称命名,创建一个文件夹,如果想要指定特定的名称,可以git clone [url] newname指定.
3. 日志
1.git log show commit history of a branch.
4. 状态
1. git status git add和git stash 没有必然的关系,git add 只是把文件加到git 版本控制里,但是执行git stash 能正确存储的前提是文件必须在git 版本控制中才行。
(1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
(2)git stash list :查看stash了哪些存储
(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储
(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0}
(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
(8)git stash clear :删除所有缓存的stash
5.增加文件到缓存区
1. git add filename 添加指定文件或文件夹到工作区
2. git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
3. git add -u (git add --update的缩写) 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
4. git add -A (git add --all 的缩写) 提交所有修改,是2和3两条的缩写
6.提交更新
1.git commit -m 'update info'
7.从仓库拉代码并合并
1.git pull
8.向仓库master分支推代码
1.git push origin master
9.拉取所有更新
1.git fetch
10.创建并切换到分支
1.git checkout -b branchname
11.合并分支
1.git merge origin/master
二、命令速查
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210104165644292.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNjE2NTI5,size_16,color_FFFFFF,t_70#pic_center)
配置
1. 用户信息
配置或更新用户名称和电子邮件地址,git 用于记录是谁提交了更新,以及更新人的联系方式。
git config --global user.name "Donly Chan"
git config --global user.email donly@example.com
2. 查看配置
1.git config --list 查看所有配置
2.git config user.name 查看某个配置
操作规范
一、分支操作规范
1. 创建并切换分支
1.git checkout master
2.git checkout -b dev 等价于 git branch dev + git checkout dev
3.git branch 查看本地所有分支,带*表示当前分支
4.git branch -a 查看远程所有分支,白色表示本地有,红色表示本地不存在,只存在远程仓库
2. 修改提交代码
1.git add .
2.git commit -m "update说明"
3. 分支合并(将dev合到master)
1.git checkout master
2.git merge dev
4. 删除分支(当前不能在所要删除的分支上)
1.git branch -d dev 会在删除前检查merge状态
2.git branch -D dev git branch --delete --force的简写,会直接删除。
二、解决冲突
1. 发生冲突文件,根据需要保留代码
<<<<<<< HEAD
你本地的分支的
============
别人提交的commit代码
>>>>>>>> 39645e0443a07957dae
2. 解决冲突并提交
1.git add .
2.git commit -m "update说明"
3.git push origin 分支名称
三、版本回退
1. 回退到上一个版本
1.git reset --hard HEAD 回退到上一个版本
2.git reset --hard 版本号 回退到指定版本
2. 回退到指定版本
1.git reset --hard 版本号 回退到指定版本
3. 查看以往的版本号(本地的commit)
1.git reflog
4. 查看各版本号及信息(所有commit)
1.git log
5. 远程版本回退
1.git reset --hard 版本号 本地分支回到指定版本号
2.git push -f origin branchname 将远程分支回退到指定版本
6. 删除远程分支
1.git push origin --delete [branch_name]
三、commit 规范
Git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作
1 格式
<type>(<scope>): <subject>
type (必需)
用于说明git commit的类别,只允许使用下面的标识
类型 | 说明 |
---|
feat | 新功能(feature) |
fix | 修复bug |
docs | 文档(documentation),仅仅修改了文README |
style | 样式,修改空格、缩进,结尾符等,不影响代码逻辑 |
refactor | 重构(既不是新增功能,也不是修改 bug 的代码变动) |
perf | 优化相关,比如提高性能、体验 |
modify | 优化代码格式, |
test | 提交测试代码(单元测试,集成测试等) |
chore | 改变构建流程、或者增加依赖库、工具等 |
revert | 回滚到上一个版本 |
merge | 代码合并 |
sync | 同步主线或分支的bug |
misc | 一些未归类或不知道将它归类到什么方面的提交 |
scope
scope 说明 commit 影响的范围,比如数据层,控制层,视图层等等,这个需要视具体场景与项目的不同而灵活变动
subject
1.subject 是对于该 commit 目的的简短描述
使用第一人称现在时的动词开头,比如 modify 而不是 modified 或 modifies
首字母小写,并且结尾不加句号