Windows XP 下使用 Git 小記 (二)
TortoiseGit for WinXP
為保持本文的獨立性,其中一些內容與“Windows XP 下使用 Git 小記 (一) with JGit/EGit” 中的內容相同。
一、安裝必要客戶端
1. TortoiseGit
http://tortoisegit.googlecode.com/files/TortoiseGit-1.0.2.0-32bit.msi
下載安裝后,重啟系統。
2. 安裝 msysgit
a. 從 http://msysgit.googlecode.com/files/Git-1.6.2.1-preview20090322.exe 下載并安裝;
3. JGit/EGit plug-in for Eclipse 3.5
a. 菜單 -> Help -> Install New Software -> "Add" Button;
b. "Add Site"
Name : jgit Location
Location : jgit - http://www.jgit.org/updates
選擇最新版本(目前是 0.5.0.200908282229)安裝之;
c. 重啟 Eclipse
=============================================================================
二、在服務器上建立公共庫 并提交第一個項目
說明中省略了在提示框填寫密碼的步驟。
1. ssh 到服務器,假設當前目錄為你的帳戶根目錄;
2. 在服務器上建立公共庫
$ mkdir gitdemo.git #倉庫名稱為 gitdemo.git
$ cd gitdemo.git
$ git --bare init --shared #建立裸庫,且為 group 共享模式
剛剛創建的 Git 倉庫是沒有任何分支的,因此也沒有 clone 的意義。
所以我們需要向新的倉庫上傳一些東西,以初始化倉庫。
3. 管理員添加公共庫的第一個項目
我將在 D:\ 目錄下開始所有操作。
a. 建立本地 Git 倉庫的文件夾 AndroidSpace
建議如沒有特殊需要,此處不要在 Eclipse 的 workspace下建立倉庫目錄,
也不要將 workspace 作為倉庫目錄,否則會使得環境過于復雜,可能造成不必要的麻煩。
最好在與 workspace 同目錄下建立倉庫目錄,例如 AndroidSpace。
也就是說 AndroidSpace 是本地的一個 Git Repository,同時也被當作是 Eclipse 的一個
工作空間,當然它并不是真正你設置的 workspace。
b. 進入 AndroidSpace 目錄,右鍵點擊顯示菜單,選擇 "Git create repository here",
將會建立一個 .git 目錄,此時 AndroidSpace 已經成為一個本地 Git 倉庫。
c. 這里需要手動添加 ".gitignore 文件,以過濾不需要進行版本控制的文件。
方法:
在 AndroidSpace 倉庫中新建一個文本文件,如叫 ignore.txt;
向其中添加需要過濾的文件名稱的匹配字符,如:
*/bin/*
*/gen/*
添加完畢后保存關閉,在 cmd 窗口,執行以下命令:
D:\AndroidSpace>ren ignore.txt .gitignore
將 ignore.txt 改名為特定的 .gitignore 文件,直接 F2 重命名在 windows 是不允許的。
d. 此時使用 Eclipse 建立一個 Android 工程(你也可以用別的)。
注意將目錄定位到 AndroidSpace中(你剛才創建的 Git 本地庫)。
c. 此時,Test 項目文件夾及內部各文件都會標有一個大大的問號。
右鍵點 Test 項目 -> TortoiseGit -> Add... -> 確認要 add 的文件 -> OK;
d. 此時,Test 項目文件夾及內部不被過濾的文件都會標有一個大大的十字。
右鍵點 Test 項目 -> (Git commit -> "master") -> 寫 comment 以及確認要提交的文件 -> OK ->
完畢后有兩個 button : Close 和 Push。
如果 Close 則直接關閉對話框。
如果 Push,則會彈出 Push 對話框,以便將當前分支同步到服務器公共庫上。在對話框中填寫:
Local:master | Remote:master
Destination: 如果是第一次配置,需要點擊 Manage button,打開 Settings 對話框,
右側面板中填寫
Remote:origin | Url: username@server_ip:your_account_dir/gitdemo.git
拷貝一下Url。
點擊 "Add New" -> 點擊 "應用"。
回到Push對話框,此時 origin 并不會自動顯示,你需要選擇 Arbitray URL再次填寫
一遍 剛才的 Url(下次打開時就會有 origin) 了。
點擊“OK”,push 操作完成。
(你也可以 右鍵點 Test 項目 -> TortoiseGit -> Push... 打開Push對話框。)
此時,Test 項目文件夾及內部不被過濾的文件都會標有一個大大的對號。
e. 此時在服務器的公共庫目錄下 使用 git log 命令,可看到剛剛 push 的項目日志。
這樣公共庫的建立及第一次初始化操作完畢(圖 Tor 1, Tor 2)。
f. 用同樣的方法可將之前創建的 .gitignore 文件上傳,不妨試一下。
三、從已建立好的公共庫上 clone 項目
1. 在 AndroidSpace 同目錄下,右鍵 -> Git clone -> Git clone 對話框,填寫 Url 和 Directory,
Url: username@server_ip:your_account_dir/gitdemo.git。
點擊 “OK”,完成 clone。
此時,你可以在 Eclipse 中導入這個新建庫中的 Test 項目。就像“Windows XP 下使用 Git 小記 (二)”一樣。
四、進行一次兩個客戶端的同步
這里,由于我是在一臺機器上進行操作,所以不能起同樣的項目名稱,我的當前環境如下:
(你可以將 Eclipse 中的項目刪除,重新導入,并分別重命名為 Test1 Test2)
D:/AndroidSpace/Test 導入為--> Eclipse Test1
D:/AndroidClient/Test 導入為--> Eclipse Test2
AndroidSpace 和 AndroidClient 為前述中提到的兩個本地 Git Repository, 在服務器上有我們的公共
Git 庫 gitdemo.git。
現在要做的就是,修改 Test1 中的 Test.java 文件,提交修改,并同步到 gitdemo.git,Test2 再與
gitdemo.git 同步,獲取最新的 Test.java 文件的修改。
在將 Git 中的項目導入到 Eclipse 中時,Eclipse 會修改項目目錄下的 .classpath 文件,沒有關系,
它看起來似乎只是調換了一下里面的內容。把它當作一個普通文件就好了。
1. 打開 Test1 項目的 Test.java 文件,添加如下代碼:
private static final String TAG = "Test";
...
setContentView(R.layout.main);
Log.v(TAG, "Test Message");
...
2. 保存修改后,(不是在 Eclipse 中)右鍵點擊 Test.java -> (Git commit -> "master")
-> 填寫 comment,確認要更改的文件,并點擊“OK”提交 -> Close;
3. 右鍵 Test.java -> TortoiseGit -> Push... -> 填寫字段 -> OK,push完畢。
可以在服務器端 git log 看看日志。
4. 下面對 AndroidClient 進行一下同步。
右鍵 AndroidClient -> Git Sync... -> Git Synchronization 對話框 -> 填寫表單 ->
點擊“Pull”按鈕 -> 就會顯示出同步結果。
我的有兩個: add .gitignore 和 modify Test.java,如果沒有沖突,將會自動合并,
如有沖突,那就先解決沖突,再提交修改。
=================================================================================
實際使用的情況會更負責,比如 push 時,一般都需要先 pull 一下,否則如果公共庫相對你
的本地庫有修改,那 push 操作會失敗。
********************************************************************************
TortoiseGit 功能十分強大,而且十分人性化,
需要在使用的過程中不斷磨合。