在QtCreator上
使用版本控制系统Git(二)
提到版本控制,就不得不提到它的一个重要的功能:分支功能。假如我们制作项目需要一些差异化的版本(例如Windows7家庭版和Windows7旗舰版等),但是它们都是拥有相同的部分,仅仅有一些部分是不同的,那么我们完全可以先制作相同的底层部分,然后创建多个分支,分别制作,这样可以拥有两个版本进行评估,最终选择一个更好的版本,也可以两个版本分别发售。在这一点上,git又帮了我们大忙,下面我就介绍在QtCreator上是怎样使用git的分支功能的。有不对的地方请尽管提出来,我会改正的。
我目前的开发环境:Ubuntu11.10、QtCreator2.41、Qt4.8。
首先打开QtCreator,点击“工具➡Git➡Log”来查看我们的Log。如下图:
我们看到第一行中间的括号(HEAD,master),它表示了当前head指针指向的是这个版本,并且这个版本所在的分支是master。怎样查看分支呢?很简单,点击“工具➡Git➡Branches...”就行了。
这里有一个master分支,正是我们以前编辑的分支。接下来我们创建另外一个分支,点击“添加”,创建一个名为Experimental的分支吧(不要选“跟踪本地分支master”)。然后我们先点击Experimental分支,然后点击checkout来切换到Experimental分支。关闭对话框,接下来的动作就在Experimental分支上进行了。
我们在main.c上进行一点修改,去掉HelloWorld显示,改为显示三角形的面积。
#include <stdio.h> #include <math.h> float AreaOfTriangle( float a, float b, float c ) { float p = ( a + b + c ) / 2.0f; return sqrt( p * ( p - a ) * ( p - b ) * ( p - c ) ); } int main(void) { printf( "Hello git!\n" ); printf( "The area of a triangle is: %f\n", AreaOfTriangle( 6.0f, 6.0f, 6.0f ) ); return 0; }
其中蓝色的部分是我们更改过的代码,编译运行后我们可以提交这段代码。我们就将这段代码的版本定义为1.2a,提交界面如下图所示:
提交完了后查看版本信息:
* a4cbfc4 (HEAD, Experimental) 蒋彩阳 Ver. 1.2a 2012-10-27 10:28:11 +0800 * a03507a (master) 蒋彩阳 Ver. 1.1 2012-10-24 08:56:34 +0800 * 2552bae 蒋彩阳 Ver. 1.0 2012-10-20 11:27:13 +0800
此时HEAD指针指向了Experimental分支里面的Ver.1.2a版本了。
这个版本也算是成功的了,于是我将精力转向了另一个版本,我想让它实现对圆锥体积的计算。首先我们要将HEAD指针回调。点击“工具➡Git➡Branches...”,点击master分支进行checkout,切换到master分支,我们看到我们的main.c回到了原来的状态。查看一下Log看是否正确地切换?接下来我们再对main.c进行修改,让它能够计算圆锥的体积:
#include <stdio.h> float VolumeOfTaper( float radius, float height ) { return 3.1416f * radius * radius * height / 3.0f; } int main(void) { printf( "Hello git!\n" ); printf( "The volume of taper is %f\n", VolumeOfTaper( 10.0f, 5.0f ) ); return 0; }
提交一下,这次将其的版本命名为Ver.1.2b,这样我们项目的两个版本都做好了。如果我们想查看Experimental分支下的当前版本Ver.1.2a的情况,仍然可以使用“工具➡Git➡Branches...”并对Experimental进行checkout就可以了。
嗯,我想知道这两个版本究竟有什么不一样,要来回切换分支并且花很长的时间来找不同吗?哪有这么麻烦,很简单,使用“工具➡Git➡Branches...”,选择一个分支,这里是Experimental,点击diff,来看看和已经checkout了的master分支究竟有什么不同。下面是截图:
diff --git a/main.c b/main.c index c450bd0..e9b2f1f 100644 --- a/main.c +++ b/main.c @@ -1,17 +1,15 @@ #include <stdio.h> -#include <math.h> -float AreaOfTriangle( float a, float b, float c ) +float VolumeOfTaper( float radius, float height ) { - float p = ( a + b + c ) / 2.0f; - return sqrt( p * ( p - a ) * ( p - b ) * ( p - c ) ); + return 3.1416f * radius * radius * height / 3.0f; } int main(void) { printf( "Hello git!\n" ); - printf( "The area of a triangle is: %f\n", - AreaOfTriangle( 6.0f, 6.0f, 6.0f ) ); + printf( "The volume of taper is %f\n", + VolumeOfTaper( 10.0f, 5.0f ) ); return 0; }
这样看不就一清二楚了嘛。
此外还可以将某个分支删除(在“工具➡Git➡Branches...”中),为某个分支进行重命名,以及更加强大的gitk工具,这里就不再向大家介绍了。只要大家入门了,这篇教程就达到目的了。还希望大家一起努力,利用强大的编程工具制作出更加强大的作品来。