Git实用教程-第九篇:分支管理之应用

现在我们已经知道了分支的一些基本操作,在实际应用中,还有一些需要我们注意的地方,以及合理利用分支的特性,可以为我们的工作提升一定的效率。


一、分支合并方向

我们在实际开发中,一般会有多套环境,比如,开发环境、测试环境、生产环境,而每套环境一般会对应一个分支,比如分别对应dev、test、prod分支。当我们在合并代码时,应该明确一个合并方向,一般是将开发环境的代码合并到测试环境,再将测试环境的代码合并到生产环境(dev -> test -> prod)。

为什么不能将生产环境的代码合并到测试环境?

一般生产环境的代码有一些修复bug的commit合并在上面,而这些修复bug的commit不一定会合并到开发或测试分支,开发或测试分支可能直接修改了这些bug,如果这时将生产环境的分支合并到开发或测试分支,会造成一些没有用处的commit合并过来了,这样会造成更多的冲突,使解决冲突的工作加大了复杂度。如果我们严格按照dev -> test -> prod的这样方向去合并,会减少冲突的发生,而且遇到冲突,也很好解决,


二、多配置文件管理

针对不同的环境,我们会有对应的配置文件,比如对应开发、测试、生产分别有三套配置文件,application-dev.yml, application-test.yml, application-prod.yml,每修改(含新增、修改、删除)一项配置,必须在这三个文件中分别修改,往往都是在上测试环境时,修改测试的配置,上生产环境时修改生产的配置。当配置项太多时,可能会出现遗漏配置的情况,而一项一项的人工去检查又比较麻烦,有没有什么方法通过软件去告诉我们要修改哪些配置项呢?有!下面将介绍。

1、首先,为了方便,我们删除之前创建的dev和test分支,然后重新创建

$ git branch -D dev
Deleted branch dev (was f332e96).
$ git branch -D test
Deleted branch test (was b78055d).

2、创建并切换dev分支

$ git checkout -b dev
Switched to a new branch 'dev'

3、创建application-dev.yml文件,并编辑内容:

$ vi application-dev.yml
server:
  port: 8080

4、提交至本地版本库

$ git add application-dev.yml
$ git commit -m "新增开发环境配置"
[dev 24a0e7b] 新增开发环境配置
 1 file changed, 2 insertions(+)
 create mode 100644 application-dev.yml

5、创建并切换test分支

$ git checkout -b test
Switched to a new branch 'test'

6、修改文件名为application-test.yml,然后提交

$ mv application-dev.yml application-test.yml
$ git add application-dev.yml
$ git add application-test.yml
$ git commit -m "重命名测试环境的配置文件"
[test 74d028d] 重命名测试环境的配置文件
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename application-dev.yml => application-test.yml (100%)

7、文件准备好了,现在切换到dev分支

$ git checkout dev
Switched to branch 'dev'

8、修改配置文件application-dev.yml,修改端口并添加配置项,为如下内容:

server:
  port: 8081
  max-threads: 500

提交:

$ git add application-dev.yml
$ git commit -m "修改开发环境配置"
[dev e431f6b] 修改开发环境配置
 1 file changed, 2 insertions(+), 1 deletion(-)

9、切换到测试分支,并合并开发分支的代码

$ git checkout test
Switched to branch 'test'

$ git merge dev
Auto-merging application-test.yml
Merge made by the 'recursive' strategy.
 application-test.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

10、好戏来了,查看application-test.yml文件发现,在开发环境添加的配置不需要自己手动修改,已经合并过来了:

$ cat application-test.yml
server:
  port: 8081
  max-threads: 500

如果测试环境相应的配置需要修改,直接在测试分支上修改即可。如果不清楚修改了哪些具体配置,可以通过git log命令查看

$ git log
commit e431f6bff637b93bc5292b0024e54f63279eb23a (dev)
Author: dudan <[email protected]>
Date:   Tue Feb 26 17:26:41 2019 +0800

    修改开发环境配置

commit 74d028d260f76af86fb264ec6d7d287a5718098d
Author: dudan <[email protected]>
Date:   Tue Feb 26 17:23:29 2019 +0800

    重命名测试环境的配置文件
$ git show e431f6b
commit e431f6bff637b93bc5292b0024e54f63279eb23a (dev)
Author: dudan <[email protected]>
Date:   Tue Feb 26 17:26:41 2019 +0800

    修改开发环境配置

diff --git a/application-dev.yml b/application-dev.yml
index a7afc92..fd1063e 100644
--- a/application-dev.yml
+++ b/application-dev.yml
@@ -1,2 +1,3 @@
 server:
-  port: 8080
+  port: 8081
+  max-threads: 500

这样,在合并配置文件时,Git会帮我们把修改的配置文件自动合并过来,我们只需要在相应的分支修改相应环境的配置即可,从而不会造成配置项的遗漏。一定要注意分支合并方向,只能将开发分支合到测试分支,不能将测试分支合到开发分支,否则会将测试环境的配置合并到开发环境。

你可能感兴趣的:(Git实用教程-第九篇:分支管理之应用)