简介
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
基础用法
创建仓库
本地新建
克隆仓库
工作区域
工作区
暂存区
.git/index
存放add后没有commit的内容
本地仓库
.git/objects
Git用于存储代码和版本信息的区域,commit后的内容存到此处
文件状态
flowchart LR
A[未跟踪] --"git add"--> B[未修改] --修改文件--> C[已修改] --"git add"--> D[已暂存]
A[未跟踪] --"git add"--> D[已暂存]
D[已暂存] --"git commit"--> B[未修改] --"git rm"--> A[未跟踪]
D[已暂存] --"git reset"--> C[已修改] --"git checkout"--> B[未修改]
提交
查看仓库状态
添加到暂存区
从暂存区中删除
提交
日志
1 2 3 4 git log git log --oneline
回退版本
1 2 3 4 5 6 git reset --soft git reset --hard git reset --mixed
对比文件
1 2 3 4 5 6 7 8 9 10 git diff git diff HEAD git diff --cached git diff <commit ID 1> <commit ID 2>
上一个版本用HEAD~
或HEAD^
,上两个版本HEAD~2
。
此外本质零还可以比较分支之间的差异。
删除文件
1 2 3 4 git rm git rm --cached
关联远程
1 2 3 4 git remote -v git remote add <shortname> <url>
1 2 3 4 5 6 git fetch git pull git push
分支
1 2 3 4 5 6 7 8 git branch <branchname> git switch <branchname> git merge <branchname> git branch -d <branchname>
rebase
1 2 git rebase <branchname>
Gitflow模型
将仓库分为以下分支进行开发:
main
hotfix
release
develop
feature
下图是draw.io (Apache License 2.0 )的一个模板,直接拿来用了,里面的Nightly分支是每晚自动构建。