Git 共享环境中的开发工作流

Git workflow for development in a shared environment

我正在尝试找出最适合我们案例的 git 分支模型和工作流程。我们有一个很特别的设置:开发者没有本地环境,都使用相同的共享环境。

由于我们的环境难以复制,我们使用共享环境进行开发。修改已上传到此共享环境以供执行和评估。

但是,有时开发人员会通过单独更新同一文件并导致其他人的工作被覆盖而踩到别人的脚趾。

我们还有一个用于测试和发布过程的暂存和生产环境。

有人知道适合我们设置的 git 分支模型吗?

我一直站在你的立场上。我假设你的意思是你使用共享的 工作目录 你的代码(脚本?) 存在并被你的网络服务器或其他任何东西使用,并且每个人都在访问它(即 运行 代码是您的单个共享工作 space 同时)

一个模型是:

  • 每个开发人员都有自己的存储库克隆,并且只允许 git add ; git commit 在该目录中。
  • 如果开发者想修改"live" 工作目录,他只能在该目录中执行git pull ; git checkout xyz-branch。这是为了您使用的这种相对无关紧要的 which 分支机制。您可以使用标准 "gitflow" http://nvie.com/posts/a-successful-git-branching-model/ , or my personal favourite http://dymitruk.com/blog/2012/02/05/branch-per-feature/ 。或者甚至只是 "one branch per developer + master".
  • 这会将问题从非历史记录的本地工作目录转移到 git 提交树。您现在只需要找到一种方法(通过其中一个工作流程)摆脱直接在实时工作目录中到处手动修改文件的习惯。

但真正明智的做法是努力摆脱开发环境中的共享工作目录,并努力为每个开发人员提供自己的工作目录。