我们在进行项目开发的时候,为了更好的管理项目、追溯项目历史,我们会采用代码管理。一般常用的有 git svn 等,但是项目的开发、测试、上线往往都是有很多工作,如果没有一个合适的管理规范那会导致项目出现一下不必要的麻烦。可能各个公司有不同的管理方式,本文分享一下我们一直沿用的 GIT 分支管理规范。
# Git 常用命令
git clone <远程URL> 克隆远程仓库代码(默认拉取到的是master分支) | |
git checkout <分支> 切换到指定分支 | |
git rebase <分支> 合并指定分支的代码 | |
git remote add origin <远程git> | |
git remote -v 查看git的链接URL | |
git status 查看仓库状态 | |
git add . 提交本地修改到暂存区 | |
git commit -m '提交更改的备注' 将暂存区提交到本地仓库 | |
git push origin <分支> 推送本地仓库更改的分支到远程仓库的分支 |
# Git Flow 常用的分支
- Master 分支
这个分支的代码是发布到生产环境的代码,这个分支只能从其他分支合并,不能在这个分支直接修改 - Develop 分支
这个分支是我们是我们的主开发分支,包含所有要发布到下一个 Release 的代码,这个主要合并与其他分支,比如 Feature 分支 - Feature 分支
这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回 Develop 分支进入下一个 Release - Release 分支
当你需要一个发布一个新 Release 的时候,我们基于 Develop 分支创建一个 Release 分支,完成 Release 后,我们合并到 Master 和 Develop 分支 - Hotfix 分支
当我们在 Master 发现新的 Bug 时候,我们需要创建一个 Hotfix, 完成 Hotfix 后,我们合并回 Master 和 Develop 分支,所以 Hotfix 的改动会进入下一个 Release
# Git 回滚版本
# 1. 命令行操作 (以 Git Bash Here 工具为例)
- 先显示提交的 log (
-3
为显示最近的 3 条记录)git log -3
- 回滚到指定的版本 (有
soft
、hard
、mixed
等参数)git reset --hard <版本号>
- 强制提交(-f 表示 force 强制提交)
git push -f origin <分支名>
# 2. 界面版操作 (以 TortoiseGit 工具为例)
<!-- failed to push some refs to 'code.aliyun.com:1607458660/test.git' -->
- 先显示提交的 log (项目目录下右键点击
TortoriseGit
=>显示日志
) - 选取指定版本 (
右键
选择重置``xx分支
到此版本) - 重置类型 (
选择硬重置
=>重置工作区和索引(丢弃所有本地变更)
, 点击确定
、关闭窗口
) - 重置的版本 (
右键
选择推送
=> 点击勾选
已知变更)
在这中间可能会报 error:failed to push some refs to 'code.aliyun.com:xxx.git'
莫慌,此时你需要做的就是拉取一下远程的变更并合并到本地,然后再次推送即可!!
此时就已经顺利回滚到指定版本了
# 参考文章:
https://www.bootcss.com/p/git-guide/
https://git-scm.com/book/zh/v2