开源python-github flow工作流
git
首先注意有git flow, github flow
其中git flow更加复杂
设置
可以设置不能在主分支直接提交
quick start
Git分支模型(master/hotfix/develop/feature/release)
github flow
- Create a new Branch
- Make changes and add Commits
- Open a Pull Request
- Review
- Deploy
- Merge
workflow
- remote main,远端
- local main,本地
- disk main, 实际源文件
1 local 建立新的分支
git checkout -b dev
实际源文件不了解branch信息
2 修改代码
disk修改了代码,但local git还不了解
# 查看disk和local的变化
git diff
3 flow
# disk的修改放到暂存区
git add <changed-file>
# 暂存区到local git里
git commit -am "message"
# local git到remote git,此时GitHub里增加了相应的dev分支
git push origin dev
# 此时可能发现main branch已经多了别人别的commit。就要测试我们dev分支里的改动是否work
4 如果遇到如下情况
# remote git同步到local git和disk,如果此时main分支已经有了新的改动,怎么办?
git checkout main # checkout 新分支之前需要把之前先commit
git pull -origin main # 新的主分支,同步到local和disk
git checkout dev # 回到新的dev,此时没有远端main的变化
git rebase main # 自己的修改先不管,先把main拿过来,尝试把dev变化同步, rebase的功能提取我们在A分支上的改动,然后应用在B分支的代码上
# conflict的话,则手动修改
git push -f origin dev # 有rebase之后,需要force push
# pull request
# suqash and merge
# 之后可以github手动删掉dev分支,然后git命令删掉本地dev分支
git checkout main # 想删掉dev之前需要处在其他分支
git branch -D dev
git pull origin main # 最新的更新拉到本地
提一个PR,如图dev分支到master分支
提起之后,注意其名字后续就会成为新的“commit message",如这里默认的Dev # 1
可以看到该pr包含dev分支的两个commit
PR页面下面就有merge的功能,这里选择squash and merge
还有一次修改commit message的机会。Dev #1
最后可以删掉remote的分支
恢复
git怎样恢复删除的分支
- 1利用“git reflog”命令找到被删除分支的最后一次提交记录的commitSHA值;
- 2利用“git checkout -b dev 获取到的commitSHA值”命令恢复删除的分支

- 8b05ac7

确实,文件回来了
冲突
git fetch
git rebase origin/v1.0
git add .
git stash
git push -f
git stash pop
git提交规范
- 上 git commit template
- 前端常用的,安装Commitizen
推荐commit message格式
<type>(<scope>): <subject>
<commit类型>(影响范围): 具体描述
- 有项目管理工具的话,加上提单号也行
type
『feat』: 新增功能
『fix』: 修复 bug
『docs』: 仅仅修改了文档,比如 README, CHANGELOG等等
『test』: 增加/修改测试用例,包括单元测试、集成测试等
『style』: 修改了空行、缩进格式、引用包排序等等(不改变代码逻辑)
『perf』: 优化相关内容,比如提升性能、体验、算法等
『refactor』: 代码重构,「没有新功能或者bug修复」
『chore』: 改变构建流程、或者增加依赖库、工具等
『revert』: 回滚到上一个版本
『merge』: 代码合并
scope (optional)
scope用于说明 commit 影响的范围,根据不同项目有不同层次描述。若没有特殊规定,也可以描述影响的哪些功能等。
subject
subject是commit目的的简短描述,不超过50/80个字符,一般git提交的时候会有颜色提示。
开源代码,统一英文,可以再附加对应的issue地址,结尾不加标点符号
参考
- https://docs.github.com/en/get-started/quickstart/github-flow
- 详解git rebase
- https://gist.github.com/scottyhq/299e4d36018a2f13acfb2528a1553002
更多推荐
所有评论(0)