基本开发流程
git clone <仓库地址>
git checkout <迭代分支>
git pull --rebase // 拉取当前分支最新代码
git checkout -b <自己的修复分支>
写逻辑......
git add .
git commit -m 'message xxxxx' // 下面有commit规范
git push --set-upstream <自己的修复分支> // 第一次提交
多人协作流程
git checkout <迭代分支>
git pull --rebase // 拉取当前分支最新代码
git checkout -b <自己的修复分支>
写逻辑......
git add .
git commit -m 'message xxxxx' // 下面有commit规范
if(迭代分支上有其他人更新的代码){
git checkout <迭代分支>
git pull --rebase
git checkout <自己的修复分支>
git rebase <迭代分支> // 将自己的分支基线同步为迭代分支的基线 (可能会有冲突)
}
git push --set-upstream <自己的修复分支> // 第一次提交
git如何撤销之前 commit 的代码 ?
// 回退到之前的某个版本 比如 有 A B C 三次提交 我想撤回到B 状态 则 git reset B 代码提交基线为 A B
git reset
// 代码回滚到指定的版本 比如 有 A B C 三次提交 我想更改到B提交的代码 git revert B 会把 B的提交重新拉回来 此时修改完 commit 之后 代码基线为 A B C D
git revert
// 注意: git reset 撤销到某次提交 git revert 撤销某次提交
[git stash]
假如当你在A分支上开发代码 代码还没开发完成,此时你要去B分支上改另一个着急的bug
这个时候就需要用到 stash 贮存代码
git stash 把当前修改的代码贮存起来
// 在此期间可以 git checkout b 切换到b分支去更改bug
// 完成之后可切换到A分支继续弹出开发
git stash pop 弹出当前贮存的代码继续开发
[git cherry-pick]
将指定的提交(commit)应用于其他分支
git cherrt-pick <commitId>
commit 规范 git commit -m 'type: subject'
type提交 commit 的类型,包括以下几种:
-
feat: 新功能
-
fix: 修复问题
-
docs: 修改文档
-
style: 修改代码格式,不影响代码逻辑
-
refactor: 重构代码,理论上不影响现有功能
-
perf: 提升性能
-
test: 增加修改测试用例
-
chore: 修改工具相关(包括但不限于文档、代码生成等)
-
deps: 升级依赖
subject用一句话清楚的描述这次提交做了什么