[教學]初心者git (TortoiseGit) + GitHub使用教學

這裡是wasabi工作室的專屬討論版,可以在這裡討論網頁設計、各類網頁語言以及論壇模組製作。 🔩

ps. 這裡可以討論網頁設計相關問題,如XHTML、MySQL、JavaScript/Ajax和PHP等等。C/JAVA/VB討論請到樓下炎羅的版謝謝。

[教學]初心者git (TortoiseGit) + GitHub使用教學

文章wasabi » 2011年09月03日 12:58 pm

前言

對於周圍很多研究程式設計的人不會使用版本控制系統(Version Control System)這點很無言,所以寫這篇教學。本篇教學的主要觀眾是沒用過版本控制系統或是沒用過git的Windows使用者。如果這篇的回應良好,我下次再補上Linux上CLI介面的git指令使用入門教學。

首先,為什麼要用版本控制系統?版本控制系統有以下重要的功用:

  • 記錄所有的原始碼更改過程並作備份
  • 檢視原始碼的修改歷史或復原舊的版本
  • 與人協力時可以有效率地同步修改的內容
  • 使用分支(Branch)來同時維護多個程式版本

這些功用帶來的好處非常多,其中包含:

  • 不用擔心修改的東西會搞砸一個程式
  • 不需要手動備份各個版本
  • 不需要在原始碼裡使用注釋(Comment)來保留沒用到的語法
  • 在團隊中與人分享原始碼的時候不需要zip來zip去,然後e-mail來e-mail去 (備註1)

因為這些優點,專業的程式開發人員沒有不用版本控制系統的。所以,麻煩還不會使用版本控制系統的花點時間學習一下。

*備註1:沒錯,我對於這點非常無言。這篇教學貼出去以後,我會考慮拒收zip起來的原始碼。


git簡介

git是由著名Linux內核(Kernel) 開發者Linus Torvalds為了便利維護Linux而開發的。git有以下幾項特色:

  • 屬於分散式版本控制系統(Distributed Version Control System)
  • 速度非常快,而且在傳輸檔案時使用gzip來減小檔案大小
  • 有非常多指令可以使用,甚至能與非git系統的版本控制系統互連

細談這些特色就屬於中階git教學的內容了,簡介方面我先就此打住。


GitHub簡介

GitHub是個提供線上git空間的平台,能讓多名開發人員很方便地進行協力軟體開發。提供的方案包含免費和付費的帳號,而其中的差異在於能否使用私人空間。雖然免費的帳號只能使用公開的空間並且需要公佈所有原始碼,但對許多專案來說不是個問題。除此之外,免費的帳號沒有其他限制。

使用GitHub的優點包含:

  • 擁有線上原始碼和修改歷史瀏覽,能讓開發人員便利地分享原始碼
  • 有人創立分支(Fork)時能夠追蹤所有的分支
  • 越來越多的知名企業在徵才時會要求申請者提供GitHub帳號,以用來觀察在開源軟體社群中的參與,還有程式寫作風格和技巧等等 (備註2)

所以,要參與開源軟體開發或只是要單純備份/集中整理自己的原始碼時,GitHub是個非常好的平台。

*備註2:不過如果你的GitHub帳號上的東西太空洞或潦草的話,還是不要給雇主知道,免得扣分。我也因此拒絕過一些有提供GitHub帳號但是沒有什麼內容的求職者。


TortoiseGit

雖然說要用git指令才能完整地體驗git的強大功能,TortoiseGit對於指令介面感到陌生的人可能會比較友善,也能夠在功能和易用性上有個好的平衡。

TortoiseGit可到此下載: http://code.google.com/p/tortoisegit/downloads/list。根據系統的類型,選擇下載64bit或是32bit的版本;下載好以後安裝然後重開機。

重開好後,安裝msysgit: http://code.google.com/p/msysgit/downloads/list。下載Full installer for official Git 1.7.6,或是更新的版本。裝了這個以後TortoiseGit才能正常使用。


建立git專案(Init)並且儲存修改(Commit)

1.git-init.jpg
1.git-init.jpg (51 KiB) 被瀏覽 30394 次

首先,在一個已存在的專案資料夾,或是一個新的資料夾,點右鍵並選擇Git Create repository here…。這會建立一個新的git資料庫,以便儲存原始碼資料。出現Git Init的對話框時,不要勾Make it Bare,並點OK。好了以後,如果有開啓顯示隱藏檔案,便可以看到一個.git的隱藏資料夾。

2.git-config.jpg
2.git-config.jpg (68.56 KiB) 被瀏覽 30394 次

3.git-config-user.jpg
3.git-config-user.jpg (66.6 KiB) 被瀏覽 30394 次

建立好git資料庫以後,要設定作者資訊。在同個資料夾內按右鍵,並選擇TortoiseGit -> Settings。到Git -> Config頁面,在Name輸入你的名字,在Email輸入你的E-mail。好了以後按OK來關閉。

4.git-commit.jpg
4.git-commit.jpg (53.21 KiB) 被瀏覽 30393 次

有原始碼可以儲存以後,在資料夾內按右鍵,並選擇Git Commit -> "master"。master指的是當前的分支;如果本篇教學有續集的話,我會再作解釋。

5.git-commit-message.jpg
5.git-commit-message.jpg (62.54 KiB) 被瀏覽 30393 次

出現Commit視窗時,在Message中輸入要儲存變更的注釋。好的開發者通常會在此大致敘述此次修改有新增或異動的內容。輸入訊息後,勾取要儲存的檔案。要儲存所有檔案中的變更,勾Select / Deselect All。好了以後,點OK即可。等儲存完成後,點Close來關閉視窗。


建立GitHub帳號

6.github.jpg
6.github.jpg (49.82 KiB) 被瀏覽 30393 次

下一步驟便是建立一個GitHub帳號: https://github.com/plans。如果要用免費方案,點Create a free account。輸入使用者資訊,並按Create an account。

7.github-create-repo.jpg
7.github-create-repo.jpg (58.21 KiB) 被瀏覽 30393 次

帳號建立好以後,點New Repository以建立一個源碼庫。輸入專案名稱後按Create Repository即可。

8.github-repo-url.jpg
8.github-repo-url.jpg (48.63 KiB) 被瀏覽 30392 次

專案建立好以後,複製源碼庫的連結,如git@github.com:vvasabi-test/test-project.git。回到專案資料夾,點右鍵並選擇TortoiseGit -> Settings。

9.git-remote.jpg
9.git-remote.jpg (62.08 KiB) 被瀏覽 30392 次

在這個視窗中,選擇Git -> Remote,在Remote中輸入origin,Url中貼上剛剛複製的連結然後點Add New/Save。好了以後按OK。

這些步驟每個專案只需要做一次。

上傳修改內容(Push)

10.puttygen.jpg
10.puttygen.jpg (76.1 KiB) 被瀏覽 30390 次

現在要把修改的內容上傳到GitHub。首先要建立認證密鑰,開啟開始選單 -> 所有程式 -> TortoiseGit -> Puttygen。點Generate,等待程式跑完,然後點Save private key,將此密鑰存到任意處。如果需要保障密鑰不會被盜用,可在儲存前輸入Key passphrase來用密碼保護密鑰(同樣的密碼需在Confirm passphrase內輸入一次)。如果沒有輸入密碼,出現PuTTYgen Warning時點Yes即可。

11.pageant.jpg
11.pageant.jpg (45.33 KiB) 被瀏覽 30390 次

密鑰儲存完以後,回到開始選單,開啟所有程式 -> TortoiseGit -> Pageant。這時狀態列會跑出一個新圖示,在這圖示上點右鍵並選擇Add Key,然後選擇剛剛儲存的密鑰。

14.github-public-key.jpg
14.github-public-key.jpg (47.24 KiB) 被瀏覽 30367 次

13.github-add-key.jpg
13.github-add-key.jpg (48.17 KiB) 被瀏覽 30386 次

回到PuTTY Key Generator的視窗,並且選取和複製Public Key。開啟GitHub網頁,並點取Add your public key。點Add another public key,在Title欄輸入隨意名稱,在Key欄貼上密鑰,好了以後點Add key。

設定密鑰的步驟雖然很麻煩,好消息是一台電腦只要設定一次。

12.git-push.jpg
12.git-push.jpg (68.91 KiB) 被瀏覽 30390 次

回到專案資料夾,並按一右鍵,選擇TortoiseGit -> Push…。勾Push all branches,然後點OK,出現PuTTY Security Alert時點Yes(這只會出現一次)。如果沒有出現錯誤警告,這就代表專案已成功地上傳到GitHub了。

平日工作流程

GitHub一開始的設定很麻煩,懶得設定這些步驟的人也可以只使用git而不使用GitHub。不過,這些設定大多只要操作一次,所以最好可以有耐心地完成這些步驟。

平常修改程式碼時,在修改完以後需要儲存變更(Commit),在專案資料夾內點右鍵並點Git Commit -> "master"…。輸入修改的訊息,選擇要儲存的檔案並按OK。

好了以後,點TortoiseGit -> Push…來將修改上傳到GitHub。勾Push all branches,然後點OK。如果出現錯誤,請確定Pageant有開。沒有的話,請參照上面的步驟來開啟Pageant並加入先前儲存的密鑰。

結語

雖然使用版本控制系統看起來很麻煩,但是帶來的好處絕對值得花時間去學習。這篇教學由於是入門教學,先在此打住。如果本篇的回應良好,我會再找時間寫續集。
👉 沙比GitHub: https://github.com/vvasabi 🌟👍

頭像
wasabi
山頂黑狗兄
山頂黑狗兄
 
文章: 3209
註冊時間: 2006年02月07日 10:23 pm
來自: 秋葉原

Re: [教學]初心者git (TortoiseGit) + GitHub使用教學

文章wasabi » 2011年09月05日 2:53 pm

不想要每次重開機都要手動啟動Pageant的話,可以建立一個Pageant捷徑,然後在捷徑的路徑後面加入密鑰路徑,如:
pageant.exe C:\putty\key.ppk

然後把這個捷徑放到開始選單 -> 所有程式 -> 啟動 (Startup)資料夾即可。
👉 沙比GitHub: https://github.com/vvasabi 🌟👍

頭像
wasabi
山頂黑狗兄
山頂黑狗兄
 
文章: 3209
註冊時間: 2006年02月07日 10:23 pm
來自: 秋葉原

Re: [教學]初心者git (TortoiseGit) + GitHub使用教學

文章moneycash » 2011年09月10日 7:16 pm

Like
頭像
moneycash
嘴砲用花瓶站長
嘴砲用花瓶站長
 
文章: 1039
註冊時間: 2006年02月11日 4:12 am


回到 wasabi studio

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客