文章1: http://blog.sina.com.cn/s/blog_5063e4c80100sqzq.html
一、安裝必要客戶端
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;
向其中添加需要過濾的文件名稱的匹配字符,如:
*/bingen/*
添加完畢后保存關閉,在 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 功能十分強大,而且十分人性化,
需要在使用的過程中不斷磨合。
文章二:http://blog.csdn.net/chinaonlyqiu/article/details/8826767
一、 想要使用TortoiseGit,首先應該安裝msysGit,因為TortoiseGit只是一個界面,易於用戶操作的。
(一) 首先google一下msysGit或者直接使用網址http://msysgit.github.io/進行下載,看大家喜歡用哪個(我使用的msysGit),然后雙擊下圖中的圈出的部分。
圖表1
(二) 然后按照提示下載下來,因為這只是一個安裝器,所以所有的下載還要在后邊下載。雙擊已經下載下來的*.exe,然后開始安裝了,這時候就不用管它了。因為 大陸網絡的各種原因,這個軟件相關的文檔是從googlecode上下載的,所以相對會慢一些,等着它全部完成,就會出現下圖中的情況,表示安裝成功了。 很多大牛就是靠這個來和GitHub提交代碼和文檔的,但是我是初學者(俗稱小菜)。
圖表2
二、 這里的一切都已經准備Over了,然后就開始准備安裝TortoiseGit。
(一) 首先到https://code.google.com/p/tortoisegit/wiki/Download上下載下來32-bit或者64-bit的*.msi文件,如下圖:
圖表3
(二) 大家還看到,上圖中的下方有“Language Packs”,所以如果英文學得不是很好的朋友或者初學者,可以考慮下載“Chinesesimplified”這個中文包。然后安裝剛才下好的 TortoiseGit,安裝完畢以后,接下來運行剛才下載好的中文包。然后一切順利的話,就下載好了。
三、 然后工具都准備好了,開始使用這些工具跟GitHub交互了,也就是大家希望的往GitHub開源代碼托管庫提交數據了。
(一) 首先我們要運行TortoiseGit下的Puttygen,可以通過“開始”找到。
圖表4
運行開始后,就可以點擊“Generate”(產生),來生成密鑰了,這個是方便公鑰與私鑰加密的,這個有興趣的朋友,可以了解一下RSA加密技 術。但是值得注意的是最下邊的“Type of key togenerate”使用默認的方式“SSH-2 RSA”方式,這是github的要求。生成完密鑰,應該保存一下,以方便后邊的使用,盡量保存到自己方便找的地方,也可以和自己之前的安裝目錄放到一 起。
圖表5
(二) 到現在我們就要開始建立TortoiseGit和msysgit的連接了,這樣才可以使用TortoiseGit,而不用我們直接操作msysgit這樣 的命令行格式,畢竟我是小菜。從開始菜單找到TortoiseGit的Settings,然后如下圖操作。還可以設置一下其他的選項,使用過程中逐漸就會 認識到。
圖表6
(三) 然后就可以開始到http://www.github.com上去申請自己的賬號了,此處略去。登錄以后在網站的右下方,有如下圖的一個“New repository”,點擊建立一個新的倉庫,如果使用過SVN的朋友都應該懂得,就是放自己代碼的地方。
圖表7
圖表8
這樣子,自己的倉庫就建好了,然后就開始配置SSH,就是剛才用Puttygen什么的那個密鑰的相關配置。
(四) 點擊當前網頁右上角的這個圖標, 然后選擇左邊的“SSH Keys”,選擇“Add SSH Key”,Title隨便取個名字,但是盡量規范一些(方便自己以后有多個key時區分)。把剛才產生的那個Puttygen私鑰,復制粘貼到Title 下邊的Key中,就可以了。這樣子,我們就配置SSH Key完成了。
四、 緊接着就可以往GitHub上上傳數據了。
(一)首先我們在電腦的某個地方新建一個 文件夾(路徑盡量不要含有中文,因為好像上傳的時候中文的就會出現一定的問題)。然后右鍵該文件夾,單擊“Git Clone”,然后就可以從GitHub上克隆下來原有的數據(一定要執行)。完事以后,我們就會發現多了我們當時建立的一個庫文件。
其中操作如下圖:
圖表9
(二)這時候我們就在剛才克隆下來的倉庫中新建一個.txt文本,進行測試。操作具體如下圖:
圖表10
增加完,我們就可以commit了。
圖表11
Commit完了,很多朋友,特別是用過SVN的朋友都以為結束了,其實去GitHub上查看,竟然沒有,也許會郁悶一 下。其實也好理解,例如大家都知道在數據庫中的操作中,會有提交和回滾操作。其實這里的commit相當於先把數據放到了緩存中(也許不太恰當)。然后還 要拉到GitHub的倉庫中。操作為退到倉庫文件的文件夾下,如下操作:
圖表12
繼續完成如下圖所示操作:
圖表13
這時候,我們去自己的GitHub上查看,發現已經存在了剛才上傳的文件。
圖表14
(三)這時候也許已經可以讓我們這些初學 者松口氣了,其實我們知道也許我們很多時候是已經創建好的文件夾想要上傳到GitHub上。但是當我們使用剛才同樣的方法進行操作時,文件夾好像是不行, 所以我們要注意一下,整個文件夾上傳時,需要先pull下,然后修改以后->commit->push(推送),這樣我們去看就會發現整個文 件夾也已經上傳上去了,反正我初學是挺高興的,這也是對我們的反饋。
圖表15
五、 總結與致謝
自己學習過程,遇到了一些問題,走了點彎路,所以一定要從了解這個東西的原理開始學起,然后才可以抓住主線進行學習。
感謝“中國GitHub協會高級群”的朋友(大眾等人),及網上不辭辛勞寫blog和論壇的朋友,他們幫我解決了很多自 己遇到的疑惑;同時感謝學長和勇哥的幫助,讓我很快開始有信心學習這個東西。現在還只是學習的初步,希望自己可以開始學習他們給我傳的資料,進而更好地學 習這方面的知識。