在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工具,這裏就不再向大家介紹了。只要大家入門了,這篇教程就達到目的了。還希望大家一起努力,利用強大的編程工具製作出更加強大的作品來。