在QtCreator上
使用版本控制系統Git(一)
在一篇介紹Git的文章中,作者說版本控制系統是爲懶人準備的,它讓懶人們比那些善於備份文檔的勤勞人擁有更乾淨的文件系統以及更多的可以活着的時間。對此我深表贊同。同時在現在快節奏的社會中,提高團隊合作效率更是團隊生存的關鍵。所以,這堅定了我選擇版本控制系統的信念。
git是我第一個接觸的版本控制系統。有同學說你怎麼不用SVN啊,我反駁:Git是Linux之父LinusTorvalds一手打造的,對於Linux系統和開源項目的管理當然好啦。其實我在QtCreator上搭建git的時候也是費了一番周折呢,現在終於成功了,高興得想寫一篇文章來總結一下。有不對的地方請儘管提出來,我會改正的。
我目前的開發環境:Ubuntu11.10、QtCreator2.41、Qt4.8。
保證正確地安裝了QtCreator了嗎?請看這裏。
現在開始安裝相關組件了:首先是git。Ctrl+Alt+T打開終端,輸入sudoapt-get install git,回車,安裝git。
爲了方便地使用git,還必須安裝gitk這個git的圖形端。命令:sudoapt-get install gitk。
隨後是團隊開發必須的OpenSSH了。因爲要和很多臺主機進行通信,所以我們必須確保你們的連接是安全的,這裏OpenSSH能滿足我們的需求。安裝命令是:sudoapt-get installopenssh-client。如果你自己創建一個代碼庫並且讓自己的機器成爲服務器,那麼你還需要安裝OpenSSH服務器版本,命令:sudoapt-get install openssh-server。
有安裝OpenSSH問題的,可以移步至:這裏。
安裝完git後,我們看到,QtCreator已經檢測到了git的存在。在版本控制和工具菜單裏面都有git選項。
網上有大量git命令行相關的文章,我也不再贅述了,我就介紹git怎樣和QtCreator一起使用。注意:QtCreator按照規範將路徑中的所有中文轉爲\nnn(n爲一個數字)的形式,在git中這樣會導致定位失敗(因爲git可以識別中文路徑)。
創建一個新的項目吧,快捷鍵Ctrl+n。記得項目的路徑中不能有中文,必須是純英文的形式,在這裏我建立一個名爲“test”的純C項目。
點擊下一步,出現版本控制的選項,選擇git,如下圖。我們在創建項目的時候會有一個.user文件,保存了一些用戶雜項配置,但是不同用戶的喜好不同,因此此文件並沒有被git管理,不得不說QtCreator這一點爲我們考慮得十分細緻。
下一步,接下來就不要我說了吧,完成。創建了一個純C的項目,其實就是HelloWorld。我們假設這個HelloWorld就是第一個版本,我們要將這個版本作爲初始版本,那麼我們應該點擊“工具➡Git➡Commit……“作爲我們的第一次提交,也是第一個版本。
填寫作者和Email信息後,就可以寫說明了。這裏對“說明”輸入框作一些說明:首先在我這個QtCreator版本一輸入中文就崩潰(自動退出),很惱人的,所以這次我就沒有填寫中文信息了,但是使用git命令(命令:gitcommit,打開GNUnano編輯器)就可以填寫中文。此外注意了嗎?第一行是用粗體標誌的呢,第二行爲空,這是因爲很多的信息服務(如接下來介紹的log)會將第一行作爲題目,後面的作爲正文。命令
填寫好了,並且選擇了需要提交的文件之後,點擊提交,這樣git就爲我們儲存了一個版本的信息了。
想要看看自己提交的版本信息嗎?點擊“工具➡Git➡Log“,可以顯示提交的版本信息。如下圖:
點擊2552bae,就會顯示用英文顯示的版本信息,英文不好的同學們就糟糕了……
接下來我就要對這個項目做一些修改了,我們讓它再顯示一個文字:Hellogit!,並且命名這個版本爲1.1。首先我們對源文件main.c進行修改,修改後的main.c如下所示:
#include<stdio.h>
intmain(void)
{
printf("Hellogit!\n");
printf("HelloWorld!\n");
return0;
}
其中藍色字體部分是我們添加的。接下來我們保存一下,但這並不意味着提交到git中了,因爲當你點擊“工具➡Git➡狀態“時,下面的輸出會顯示這一串文字:
#Changes not staged for commit:
#(use "git add <file>..." to update what will becommitted)
#(use "git checkout -- <file>..." to discard changesin working directory)
#
#modified: main.c
#
#Untracked files:
#(use "git add <file>..." to include in what will becommitted)
#
#test.pro.user
nochanges added to commit (use "git add" and/or "gitcommit -a")
顯示了我們的main.c已經修改,但未提交至git(test.pro.user未受git管理,因爲上文說過了,每一個用戶雜項都由一個.user保存着,失去它不會對項目的設置構成影響)。於是我們還得再提交(commit)一下了。
填完了後點擊提交,新的版本1.1就完成了。怎麼樣,是不是很簡單啊。
查看一下log(工具➡Git➡Log),現在有兩個版本了!
假設我們的1.1版本寫得不好,或者把原有的代碼改混亂了,我們想還原到原來的版本1.0那該怎麼辦呢?很簡單,使用gitk就可以解決問題。打開gitk,出現這樣的界面:
選擇Ver1.0,點擊右鍵,選擇“Resetnaster branch tohere”,在彈出的對話框中選擇Hard,並且單擊OK就完成了版本的還原。需要注意的是,選擇Hard模式意味着在新版本上的一切修改都作廢,所以要慎重處理。
回到QtCreator界面,發現提示重新載入文件,點擊“全部是”就可以了。