乐趣区

关于软件测试:软件测试Git实战四-Git分支管理实操搞定在线合并和本地合并

​ 

​编辑

相似于 SVN 这种集中式版本治理,三年前刚来上海工作时候,在华为驻场下班,华为用的就是 SVN,印象最深的就是那个小乌龟的图标;起初到里面工作,慢慢发现用 Git 的十分多,缓缓学习理解发现 Git 这种分布式的版本治理的确很好很弱小,前面也就重点学习 Git 的分支管理策略了(其实 SVN 我当初压根就不会了,哈哈。。。)

​编辑

centralized workflows

以 Bitbucket 的官网文档的实例作为简略介绍: 例如 Mary 当初想要开发,在开发前她能够通过 checkout 命令建设一个新的分支:

​编辑

Feature Branch Workflow: comit changesBefore she starts developing a feature, Mary needs an isolated branch to work on. She can request a new branch with the following command

git checkout -b marys-feature master

而后 Mary 能够在这个本地进行相干的更改:

git status git add <some-file> git commit

接着她能够一直将本地批改上传至个性分支的核心仓库中, 直到本人全完批改实现

​编辑 git push -u origin marys-feature

​编辑 git push

而后,她在 git gui(GitHub 或 GitLab 等)中提交 pull 申请,申请将 marys 个性合并到 master 中,团队成员将主动收到告诉。

​编辑

Mary 的共事 Bill 收到了 pr,Bill 感觉在合并到正式我的项目中之前还须要做一些批改,于是在 pr 的回复中对 Mary 进行告知,接着 Mary 持续批改开发,实现后再次提交 pr:

​编辑

一旦 Bill 筹备承受 pull request,有人须要将该特色 merge 到稳固的我的项目中(这能够由 Bill 或 Mary 来实现)

​编辑 git checkout master git pull git pull origin marys-feature git push

​编辑

在 GitHub 上进行根本的演示(理论工作中,公司用的还是 GitLab 较多,前面会有总结演示)1.1) 先应用 git checkout - b 命令来创立一个新的分支并切换到此分支中去, 用 git branch 命令可查看以后所处分支:

$ git checkout -b gitTestBranch Switched to a new branch ‘gitTestBranch’ $ git branch * gitTestBranch master

1.2) 将 readme.txt 文件最初一行退出如下内容并 commit

I am a test engineer. I want to study Git. branch gitTestBranch update

​编辑

1.3) push 到近程仓库并查看分支, 首次 push 须要用 git push -u 或 git push –set-upstream 命令设置上下游的关联关系:

​编辑

在 GitHub 上查看 master 分支和 gitTestBranch 分支的比照,可见 gitTestBranch 已胜利 push:master:

​编辑

gitTestBranch:

​编辑

1.4) 应用 git log –graph –all –decorate=short 命令能够查看提交的分支走向,如果分支较多的话就会呈现如下成果:

​编辑

1.5)这个时候咱们能够通过 pr 对分支进行 merge:发动 pr

​编辑

没有 conflict,能够间接 merge

​编辑

这个时候再看 master 分支,就曾经被胜利合并了

​编辑

2.1) 先在 readme.txt 文件中退出一行 branch gitTestBranch update2, 而后提交到近程分支中:

I am a test engineer. I want to study Git. branch gitTestBranch update1 branch gitTestBranch update2 git commit -a -m “gitTestBranch second update” git push

​编辑

2.2)通过 fetch 将 gitTestBranch 分支拿下来到本地, 批改本地文件并合并批改本地 gitTestBranch 分支,批改退出“branch gitTestBranch update3”并提交到近程分支

vi readme.txt I am a test engineer. I want to study Git. branch gitTestBranch update1 branch gitTestBranch update2 branch gitTestBranch update3 $ git commit -a -m “third update” $ git push

2.3)master 分支上 fetch 拿取近程 gitTestBranch 分支,批改抵触,合并提交

$ git checkout master $ git fetch origin gitTestBranch $ git merge origin/gitTestBranch # fix conflict $ git commit -a -m “fix conflict” $ git push

2.4)这时候在 GitHub 上进行查看:commit 历史中可见提交记录:

​编辑

查看 master,发现曾经被胜利合并

​编辑

退出移动版