在QtCreator上 使用版本控制系統Git(二)

QtCreator

使用版本控制系統Git(二)

提到版本控制,就不得不提到它的一個重要的功能:分支功能。假如我們製作項目需要一些差異化的版本(例如Windows7家庭版和Windows7旗艦版等),但是它們都是擁有相同的部分,僅僅有一些部分是不同的,那麼我們完全可以先製作相同的底層部分,然後創建多個分支,分別製作,這樣可以擁有兩個版本進行評估,最終選擇一個更好的版本,也可以兩個版本分別發售。在這一點上,git又幫了我們大忙,下面我就介紹在QtCreator上是怎樣使用git的分支功能的。有不對的地方請儘管提出來,我會改正的。

我目前的開發環境:Ubuntu11.10QtCreator2.41Qt4.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工具,這裏就不再向大家介紹了。只要大家入門了,這篇教程就達到目的了。還希望大家一起努力,利用強大的編程工具製作出更加強大的作品來。

發佈了8 篇原創文章 · 獲贊 22 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章