关于用 git 部署测试环境和生产环境,有点疑问纠结中。希望各位前辈指条明路。
我现在的做法: (第一种方法)
本地写代码,完成后 push 到 bitbucket 上。
然后在测试环境 pull bitbucket上的测试分支。
测试没有问题的话,在 bitbucket 创建一个拉取请求。把测试分支和主分支合并。
在生产环境中 pull bitbucket上的主分支。
第二种方法
之前看了很多文章,有人也用这种方法。
在测试环境和生产环境中分别建 git 仓库,
然后在本地的开发完直接 push 到测试环境上测试,
然后 push 到生产环境运行。
不知道这两种方法哪个更好?我现在有点纠结在这上面。
不知道哪种方式更科学效率更高呢?
总感觉我目前这种方式,有点麻烦。每次 push bitbucket 上面,然后登录测试服务器 pull 。又要在 bitbucket 合并,然后登录又要登录生产环境的服务器 pull 代码。
那如果用第二种方法的话,是不是 bitbucket 就完全没有必要了?。
另外如果用第一种方法的话,应该可以代码开发玩 push 到 bitbucket 后,如果 bitbucket 上开发分支有变化,测试环境自动同步 bitbucket 上的开发分支。 bitbucket 上的主分支有更新的话,生产环境自动同步 bitbucket 上主分支的代码。(应该用 git 的 hock 应该可以做到。)但这样做的话,是不是还是要在测试环境和生产环境的服务器上分别建立 git 仓库呢?
如果生产环境和测试环境可以自动同步 bitbucket 代码,请问怎么弄?
Version management (git/svn) and deployment should be properly isolated (decoupled).
The test system and deployment system only need to know the branch & version number of the target code.
The deployment system should have the ability to deploy any version of code on any branch (the code that needs to be online is not necessarily the latest).
Deploy a master branch in the production environment, checkout a branch from the master such as the develop branch in the test environment, checkout a branch such as feature from the master, and then use the develop merge feature branch for testing. After testing, use the master merge feature branch. develop merges master's code every day to keep it up to date.