1. 初始化项目
git init
2. 建立本地仓库和远程仓库的连接
git remote add origin 远程仓库地址
3. 已有项目只需克隆项目到本地,无需进行前两步
git clone 远程仓库地址
4. 创建并切换分支
git checkout -b 分支名 / git switch -c 分支名
等同于:
git branch 分支名 (创建分支)
git checkout 分支名 (切换分支)
4-1. 查看当前分支
git branch
4-2. 切换分支
git checkout 分支名 / git switch 分支名
4-3. 常见分支类型有:
master:主分支,一般只有拥有相关权限的人员可以操作
sit:测试分支,合并分支后,测试人员在sit环境测试
release:预发布分支,release 为预上线分支,发布提测阶段,会以此分支代码为基准提测
feature:功能分支,可使一个功能建立一个功能分支
dev:开发分支
hotfix: 项目发版后的紧急修复分支
bug: 一般只用于本地修复bug
5. 更新本地项目,从远程仓库pull到本地
git pull origin 分支名称 / git pull
6. 将文件加载到暂存区
git add .
6-1. 删除add添加的文件
git rm --cached 文件名
7. 将文件提交到本地仓库
git commit -m "描述信息" (-m 为描述信息)
7-1. 描述信息常见类型有:
feat: 新功能
fix: 修复bug
style: 不影响代码含义的更改,如 格式化
perf: 提高性能的更改
docs: 只是文档的更改
8. 合并分支
git merge 分支名 (git merge 用于合并指定的分支到当前分支)
git pull --rebase origin master将本地仓库和远程仓库合并即可
8-1. 合并冲突
使用 git status 查看工作区冲突文件
文件中 git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,根据需要删除或保存。
保存后重新提交git add . => git commit -m 'commit' => git push
<<<<<<< HEAD Hello World ======= Hello Word >>>>>>> dev1
9. 删除本地分支
git branch -d 分支名 (强行删除应使用 git branch -D 分支名)
10. 将本地仓库推送到远程仓库
git push origin 分支名 / git push (强行推送可用 git push -f )
一般在推送前需要先用 git pull 命令拉取新代码,才能push成功。
使用 git log 命令查看提交信息,若本地分支比远程分支快两个提交,尝试推送本地分支;
若失败了,说明有人先推送了远程分支,使用 git pull 拉取;
加上之前的合并提交,现在本地分支比远程分支超前3个提交,使用 git log 会发现这个分叉很不好看,但是可以push成功吗?可以。
但是对于有强迫症的同学就不太好了,此时,可以使用 git rebase 命令,将原本分叉的提交变成一条直线,之后在push,远程的提交历史也是一条直线。
11. 项目发版后可能有紧急bug需要修复,此时应建立bug分支或hotfix分支进行修复,修复完成后,合并分支到master。
若有紧急bug需修复时,此时工作区还未提交,且此时工作尚未完成,无法提交,此时可使用 git stash ,将当前工作现场隐藏,等bug修复完成后在恢复现场。
隐藏后使用 git status 查看工作区,此时工作区时干净的。
修复完成后,使用 git stash list 可查看工作现场。
此时,使用 git stash apply 恢复现场,但恢复后, stash 内容 并没有删除,需要使用命令 git stash drop 删除。
或者使用 git stash pop 命令,恢复现场同时删除stash内容。
再用 git stash list 命令查看,就看不到任何stash内容了。
可以多次使用 git stash 命令‘储藏’工作区,恢复时
先用 git stash list 查看,后可指定要恢复的stash,如 git stash apply stash@{0}