- 工作区
- 暂存区
- 本地仓库
工作区 git add-> 暂存区 git commit -> 本地仓库 git status
git reset
- soft:需要A-B版本之间的内容,回退至A版本。
- hard:不需要A-B版本之间的内容,回退至A版本
- mixed(默认):与soft类似,但需要git add
git reflog 操作历史记录,有每一次提交的id
git diff(默认):查看工作区和暂存区之间文件的区别 git diff HEAD:查看工作区和仓库之间文件的区别 git diff --cached:查看暂存区和仓库之间文件的区别 git diff id1 id2:查看两个版本之间文件的区别 git diff id1 id2 filename:查看两个版本之间某一文件的区别 HEAD:分支的最新提交节点 HEAD~/HEAD^:HEAD的前1个版本 HEAD~x/HEAD^x:HEAD的前x个版本
git rm:从工作区和暂存区中删除
.gitignore
- 系统自动生成文件
- 编译生成的中间文件和结果文件
- 运行时生成的日志、缓存和临时文件
- 敏感信息文件
在用户.ssh文件夹下,
ssh-keygen -t ed25519 -C "[email protected]"
git push git pull
git branch:查看分支 git branch branch-name:创建分支 git switch branch-name:切换分支
git merge branch-name:把branch-name分支合并到当前分支
git branch -d branch-name:删除已合并的branch-name分支 git branch -D branch-name:删除未合并的branch-name分支
一般规定:
- feat(feature)分支,开发新功能 冲突文件需要手动编辑,commit合并完成 git merge --abort:中断合并
git rebase:理解为git A rebase to B,A分支从AB的共同祖先剪掉,接到B分支上。一般少用
rebase相较merge,把历史记录直线化。
- git flow
- main:主线分支,只接受来自hotfix和release的合并。可直接在生产环境中运行。命名:v1.0.0
- 主版本:主要功能变化和重大更新
- 次版本:一些新功能、更新和改进,通常不影响现有功能
- 修订版本:小bug修复和安全漏洞补丁,通常不修改现有接口
- hotfix:main线上版本的bug热修复。命名:hotfix-#issueid-desc
- release:发布前的测试和验证。
- develop:开发。
- feature:开发新功能,从develop中分离出来。命名:feature-a-new-feature
- main:主线分支,只接受来自hotfix和release的合并。可直接在生产环境中运行。命名:v1.0.0
- github flow
- main
- feature:开发完开启PR,Review完发布和合并
git remote add shortname url git push -u origin main:main 把当前仓库的main推到远程origin仓库的main