原文鏈接http://blog.sina.com.cn/s/blog_65429b3d0102w0dw.html
使用Git Extensions簡單入門Git
——獨立觀察員 2015.11.25
前言
關於這個主題,之前我錄了段視頻教程,在本地看清晰度還可以,但傳到優酷上就很不清晰了,即使是后來重制后還是一樣不清晰,所以現在想整理成文字版。當然,大家還可以將我百度雲上的視頻下載下來觀看,連同優酷的相關地址都附在文末了。
正文
說到Git呢,相信從事軟件開發的都不陌生,是用於版本控制的,在全球范圍內被廣泛使用,相比於另一版本控制技術——SVN,似乎更受追捧一些,全球最大的代碼托管平台GitHub使用的就是Git技術。
Git與SVN的最主要的區別就是,Git的代碼倉庫是分布式的,一般流程就是在本地拉一個服務器上倉庫的拷貝,修改代碼后先提交到本地倉庫,然后再合並到遠程倉庫;而SVN的代碼倉庫是集中式的,一般就服務器上的一個,提交代碼就是直接提交到服務器上的倉庫去,這樣如果網絡不暢就無法提交了,那段時間就無法版本控制了。
還有一點比較明顯的區別,不過我不知道我說的對不對,大家聽且聽之,自行判斷。Git由於有本地倉庫,工作目錄一般就在本地倉庫那里,從文件角度上看不出兩個分支的文件分別在哪里,似乎工作目錄下同時只存在一個分支。而SVN則能夠清晰地看到哪些是主干的文件,哪些是分支的文件。
長久以來,Git都是以命令行方式使用的,而SVN在Windows上則有TortoiseSVN這樣的強大的圖形界面工具,這就形成了鮮明對比。對於剛入門的人,就會不由自主地偏愛上使用TortoiseSVN來使用SVN,而對Git心生敬畏。其實SVN也是可以使用命令行來使用的,而Git近年來也有了圖形界面工具,包括TortoiseGit、msysGit(Git版本控制系統在Windows下的版本)的Gui、以及本文將要介紹的Git Extensions等。
我剛開始得知Git Extensions時,它是作為一款Visual Studio插件映入我眼簾的,在Visual Studio的插件庫中可以下載,但好像好久沒更新了(版本為2.47.03)。后來(錄完視頻教程之后)我才發現原來其代碼維護在sourceforge網站(版本為2.48.05)。
一、現在我們來安裝這個新版本(略去不重要的內容)
以下界面所示的三個工具,如果沒安裝過,則勾上讓其安裝。MsysGit為Git的Windows版本,必須要安裝;Kdiff為對比/合並工具,可選安裝,可以換為使用其它的相關工具;最后一個Windows Credential Store for Git用於在Windows Credential Manager中存儲倉庫的密碼,這在老版本中沒有,也安上吧。
安裝Git Extensions:
安裝KDiff3:
安裝Git:
將Git和一些Unix工具加入運行路徑中:
跨平台項目不推薦選第三個,Windows上推薦選第一個,所以就選第一個吧:
安裝完成,Git Extensions會彈出配置界面,如果有問題,一般就是選擇一下相關組件的路徑即可:
SSH客戶端,OpenSSH是命令行的,PuTTY是圖形界面的:
二、接下來以使用Git@OSC網站為例
隨便選個項目點擊進入:
點擊Fork,即可克隆代碼到自己的空間當中:
然后在自己的空間即可查看:
一般自己創建一個新分支:
保留原有的master分支不去使用:
因為點擊那個雙箭頭的圈會強制從fork的源拉取代碼來覆蓋原有的分支:
可以更改默認分支、設置是否使用SVN來管理等:
配置分支保護,可將原有分支設為只讀,避免自己提交代碼時不小心弄混了:
復制代碼路徑:
在文件夾內右鍵,選擇"GitExt Clone…":
粘貼url,然后分支我們先選master的,點擊克隆:
然后可用Pull選項拉取代碼到本地倉庫:
View changes選項可查看修改記錄:
可以看到此時本地的master與遠程(origin)是同步的:
使用"Git Bash Here"選項可打開一個專用的命令行窗口(Bash):
可直接以命令行方式使用(比如查看當前是哪個分支):
使用Checkout branch…功能可簽出分支,這里我們將遠程的dlgcy分支也遷出到本地:
這樣本地就和遠程一樣也有兩個分支了:
使用命令行也可看出:
使用"GitExt Commit…"選項可提交修改:
左上角區域放的是改動過的文件,點擊紫色向下的箭頭可載入單個文件或全部載入,載入到底下的提交區,右上角顯示選中文件的改動內容,右下角填寫改動信息,最后點擊提交或提交並推送即可。
使用Push…選項可將本地倉庫推送到遠程倉庫:
會要求輸入(你在oschina網站的)用戶名和密碼:
切換分支就會切換代碼,就有可能就會有不同了:
切成了dlgcy分支:
使用命令行提交更改:
使用命令行推送更改:
(由於之前將master分支設置為了只讀,所以當時推送不成功;這次推送到dlgcy分支則是成功的。)
然后我們到網站上看一下,可以看到剛才的提交記錄了:
此時查看本地的差異是這樣的:
(因為本地master有修改和提交但未推送成功,本地dlgcy有修改和提交且推送成功)
原文鏈接http://blog.sina.com.cn/s/blog_65429b3d0102w0dw.html