美文网首页
代码管理的思考

代码管理的思考

作者: Stevenzwzhai | 来源:发表于2018-04-26 20:01 被阅读6次

git管理代码仓库遇到的一些问题

多人多项目同根目录的问题

root
--project1
--project2
...

当然这种情况其实不应该出现的,但是由于历史原因,多个项目有公用的一些东西,每个项目都很庞大,导致拆分比较费劲,短期无法做。代码发布流程是内网->dev->master,各个项目每周有例行发布时间,但是由于测试进度不一致导致的代码被别的项目带出,那么应该如何平衡多个项目的发布问题?

解决方案1

这里有个前提:每次开发新需求都是从master上拉取自己的开发分支。这样我们在测试内网是没问题,然后在往dev合并的时候要注意,只需要把你的代码merge到dev分支,而不要同步dev到你的开发分支,当然在测试期间要保持你的开发分支纯净(不要修改代码,修改代码另外开一个新分支,毕竟git中建立分支是很方便的)。在dev测试通过之后,就可以把你的开发分支合并到master,此时master就只有你修改过的代码。大体流程如下:


image.png

解决方案2

保证合并到dev的代码是马上会发的(比如今晚或者两天内),那么所有的项目都测试完成再统一进行提交到master。或者说排队发布,只要有一个没发出去,那么别的项目就不可以发到dev。

代码拆分

基于以上的项目,我们可以拆分出某个独立的项目,一般来说这些独立的项目没有依赖公共文件,项目所在文件夹也是独立的,因此我们就可以直接拆分出来,并且要把他的git记录单独提取出来。
创建新分支

git check -b new branch

剥离对应文件夹

git filter-branch -f --prune-empty --subdirectory-filter Dir

这样根目录下就只会存在你自己的项目,而且该项目的git记录也都存在而且不包含别人的提交记录。

关于代码回滚

我们在开发中可能会不小心提交了不该提交代码,而此时又合并到了dev ,大家想到的可能就是代码回滚,但是要注意几个问题:
1.回滚记录中有没有别人提交的代码
2.回滚有可能遇到合并记录的时候,会回滚失败
3.回滚要不要把之前的commit清除掉
。。。
这里着重考虑1,2点问题,如果没有遇到合并记录,那么我们可以单独拉取一个分支,回滚,然后通过cherry-pick拉取别人提交记录,然后再覆盖原来的分支,但是如果别人有很多提交记录的时候,工作量就太大了。所以其实最好就是diff现有代码和线上分支代码,把不该提交的干掉,再重新提交一个commit,这样不用关注别人的提交,也保证每次提交记录的保存。当然回滚的时候可以选择使用revert,这样也会保持提交记录,但是依然会把别人的提交覆盖掉。

相关文章

  • 代码管理的思考

    git管理代码仓库遇到的一些问题 多人多项目同根目录的问题 当然这种情况其实不应该出现的,但是由于历史原因,多个项...

  • 03 - 模块化

    思考下面的代码 变量污染,命令冲突经常发生。 代码复用性不高。 代码可维护性不高。 依赖关系管理不方便。 模块化开...

  • 代码的思考

    最近去了 二石兄 的公司面试 和 二石兄 做了很长时间的代码交流 在和二石兄逐行看我写的代码时 我初看自己的代码都...

  • iOS block里使用下划线调用实例变量会对self强引用的原

    如题, oc代码如下: 依据我们以往对block的内存管理的思考方式: self 强引用 _bbbbb,而在 _b...

  • git环境安装

    git是帮助我们管理代码的好帮手,我们可以通过git命令上传代码到代码管理仓库,或者从代码管理仓库中下载代码,等等...

  • 源代码管理工具-SVN

    源代码管理工具-SVN 一. 了解 - 源代码管理工具概述 1. 源代码管理工具的作用? 2. 常见的源代码管理工...

  • 航海日志 2017.08.02

    信息:Pull Request 的命令行管理 思考:git am 命令可以将patch文件合入当前代码;cherr...

  • iOS 随笔 3-4

    每日一句:敲代码不如思考代码,思考代码不如总结代码,总结代码不如不写代码 /(ㄒoㄒ)/~~ 每日学一点(ios)...

  • 代码管理

    IDEA学习推荐网址 代码排版:Ctrl+Alt+L Settings:Ctrl+Alt+S 类注释:/*** @...

  • 代码管理

    代码自动对齐 文件整理

网友评论

      本文标题:代码管理的思考

      本文链接:https://www.haomeiwen.com/subject/pgqtlftx.html