既然是作編程,固然要寫代碼,但是寫代碼每每不是一我的的事。一方面不少大規模的項目工程單單靠一我的的力量是難以支撐的;另外一方面,多人合做寫代碼也是軟件開發界極其推崇的一種開源和分享的精神,作技術的要讓本身適應技術社區文化。html
既然是多人合做寫代碼作項目,代碼管理是必不可少的。因此,這裏講工具備兩層意思:第一就是源代碼管理,每一個人各自維護本身的代碼,分工合做。第二就是版本管理,咱們能夠根據現實需求在項目的不一樣版本之間切換,同時維護多個版本。git
說到版本管理工具,這些年來出現過很多的工具:VSS、CVS、TFS、SVN再到Git,我我的主要是使用TFS、SVN和Git。今天我不許備把每種都詳細概覽一遍(實際上我也沒有很是的熟悉,只是應付平常場景)。我今天主要講一下Git吧,在安裝和配置的過程當中踩過一些坑,這裏把它記錄下來:github
- 下載Git,http://git-scm.com/download/
- 安裝Git Bash,出現可選項打勾的,通常保持默認便可
- 安裝完了以後,就可使用Bash命令了,Windows下面能夠右鍵打開Git Bash就打開了命令行,而且把目錄定位到當前目錄;OSX和Linux系統直接在Terminal命令行就可使用Git命令了
- 配置Git賬號的名稱和郵件,通常這都是做爲一個用戶的身份描述信息,配置方法就是:
git config --global user.name "你的名字"
郵箱就是:git config --global user.email "你的Email"
,提示,這個配置是放在.ssh同級目錄下的.gitconfig文本文件裏面了,不信你打開看一下- 定位到.ssh目錄下面,通常Windows是 系統盤符\用戶\xxx.ssh\而後在當前目錄打開Git Bash,OSX等系統直接命令行cd ~/.ssh就能夠了
- 在Git Bash命令行中,建立密鑰對,會生成私鑰和公鑰,公鑰加密私鑰解密。生成方式以下:
ssh-keygen -t rsa -C "你的郵箱地址"
,Github官方教程推薦的是ssh-keygen -t rsa -b 4096 -C "你的郵箱地址"
,參數有一些不同的地方- 生成密鑰以後,會出現提示要求輸入密鑰名稱,隨便取個名字就好了,好比這裏取名爲WinGitKey(若是這裏不是這個名字,那麼下面的WinGitKey所有都以這個名字爲準) ,按回車,你的密鑰對就生成了,查看當前目錄下面是否是產生了兩個文件? WinGitKey和WinGitKey.pub,一個是私鑰文件一個是公鑰文件
- 找一個託管站點吧,國外不用說固然是 github.com,可是天朝的特殊性,有時候咱們可使用國內的託管站點,好比git.oschina.net。註冊一個賬號以後,把上一步咱們生成的公鑰xxx.pub文件裏面的簽名字符串添加到託管站點的公鑰列表裏面去
- 是否是急着鏈接站點了?別急,咱們再配置一下全局的ssh通信代理安全標識,這是Github官方推薦的作法:運行
eval $(ssh-agent -s)
回車而後再運行ssh-add ~/.ssh/WinGitKey
,注意:正常狀況下,這應該能夠產生一個配置在.ssh目錄下的config文件中,這樣之後每次咱們使用ssh鏈接不用從新驗證身份了。windows下面有時候不會自動生成這個文件,感受很奇怪,若是沒有就手動建立一個吧,內容大概以下
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/WinGitKey
# oschina
Host git.oschina.net
HostName git.oschina.net
PreferredAuthentications publickey
IdentityFile ~/.ssh/git-osc- OK,到了這一步就進入最刺激的一步了,不少人都卡在這一步掛掉,怎麼作呢?就是測試與託管站點服務器的ssh通信
ssh -T git@xxxdomain.net
注意我這裏是隨便一個託管站點名字,到時候你要填寫真實的,回車以後,若是可能會提示一下yes/no,寫yes而後回車就行。若是提示Welcome to XXX之類的字樣,恭喜你。若是沒有看到說明你悲劇了,本教程也幫不到你了
好了,Git配置的過程說完了。大部分都在配置ssh通信細節了,這其實也是官方推薦的通信方法,更加安全可靠。在咱們正是進入代碼寫做以前,咱們還須要學習一些Git代碼操做的一些命令,關於Git,網上文章應該不少,推薦一篇 阮一峯:Git遠程操做相機以及Git使用規範,要是以爲很差理解就先收藏下來,之後再仔細琢磨,反正我這裏會簡單講解一下流程:編程
- 本地定位到你的代碼工做目錄,若是沒有你能夠創建一個文件夾,好比Git,進到目錄以後,打開Git Bash定位在這個目錄下面
- 找到你要參與的項目,點擊項目的ssh地址(假設是 xxx.git),而後咱們在Bash命令行中輸入 git clone xxx.git
- OK,git clone實際上是講遠程的整個項目的鏡像所有拷貝到本地,所有是什麼意思呢?就是包括全部的分支
- 假設項目名叫xxx,那麼Git目錄下面會生成一個xxx的文件夾,進入xxx文件夾,而後從新打開bash命令行,這時你能夠從命令行看到本身當前本身是在哪一個分支,若是你沒切過度支,通常默認就是master。
- OK,我如今是在dev分支上開發的,因而你要切換到dev分支,那麼使用命令 git checkout dev回車,你就切到了dev分支了。
- 好了,切到dev分支上開發,能夠開始寫代碼了,等一下,也許上次clone到如今已經好幾天了,也許服務器上的代碼有更新呢?好,運行一個命令:
git pull
,默認會把當前分支(dev)在服務器上的最新代碼下載到本地,OK,能夠愉快的編碼了- 插一步,任什麼時候候你均可以運行git status,查看本地工做區的文件的狀況,哪些是新增的,哪些是更改的
- 寫完代碼,感受能夠提交了。提交分兩步,第一步是提交到本地
git commit -a -m "備註信息,改了哪哪哪"
,-a表示所有,若是不用-a就要制定具體的文件名,-m後面是指定註釋信息,讓別人看得懂。注意,通常提早使用git status查看一下狀態,若是有新增的文件那就在commit以前先使用git add xxx(xxx是你新增的那個文件)或者git add .(一個點表示當前整個目錄),這樣表示把新增的文件添加到暫存區裏面,而後再執行commit命令- commit以後,代碼只是提交在你本地倉庫裏面,若是你要傳到網上,還要push一下,默認直接使用
git push
就好了。
OK,Git代碼管理的命令先就說這麼多了,這些命令能夠應付平常的常規流程了,暫時先這樣吧,咱們項目合做的時候我再慢慢告訴你。windows
補充一句,Windows下面,使用TortoiseGit工具做爲Git可視化客戶端工具仍是很方便的,特別是查看log和比較差別,值得學習使用安全