標籤:
一、前言
Git是一款免費、開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。在平時的項目開發中,我們會使用到Git來進資料列版本設定。
Git的功能特性:
從一般開發人員的角度來看,git有以下功能:
1、從伺服器上複製資料庫(包括代碼和版本資訊)到單機上。
2、在自己的機器上建立分支,修改代碼。
3、在單機上自己建立的分支上提交代碼。
4、在單機上合并分支。
5、建立一個分支,把伺服器上最新版的代碼fetch下來,然後跟自己的主分支合并。
6、產生補丁(patch),把補丁發送給主開發人員。
7、看主開發人員的反饋,如果主開發人員發現兩個一般開發人員之間有衝突(他們之間可以合作解決的衝突),就會要求他們先解決衝突,然後再由其中一個人提交。如果主開發人員可以自己解決,或者沒有衝突,就通過。
8、一般開發人員之間解決衝突的方法,開發人員之間可以使用pull 命令解決衝突,解決完衝突之後再向主開發人員提交補丁。
從主開發人員的角度(假設主開發人員不用開發代碼)看,git有以下功能:
1、查看郵件或者通過其它方式查看一般開發人員的提交狀態。
2、打上補丁,解決衝突(可以自己解決,也可以要求開發人員之間解決以後再重新提交,如果是開源項目,還要決定哪些補丁有用,哪些不用)。
3、向公用伺服器提交結果,然後通知所有開發人員。
關於Git伺服器的搭建過程,網上有很多的方法,本文主要是談談Git伺服器搭建好之後,如何使用以及怎麼使用的問題,比如使用權限設定、跨平台使用等。
PS:對於Git伺服器的搭建,本文提供以下連結,以供參考。
廖雪峰的Git教程http://www.liaoxuefeng.com、ubuntu完美搭建git伺服器 、http://www.rosoo.net/a/201102/10956.html
二、Git伺服器操作和使用指南
1、Ubuntu下安裝git和使用git伺服器
在終端輸入sudo apt-get install git命令,安裝git
以下及步驟均以[email protected]這台虛擬機器操作為例
git安裝完之後,在命令列輸入:
Your Name 和Email隨意填寫,目的是用來標識git身份
建立一個檔案夾如:
輸入git init命令,將此檔案夾初始化為一個git倉庫(空倉庫)
輸入ssh-keygen –t rsa命令產生ssh公開金鑰(出現停頓按斷行符號即可)
在主資料夾目錄下會產生一個.ssh檔案夾(若無則按Ctrl +H使之顯示)
在本虛擬機器上repository目錄下建立一個目錄gitadmin用於存放gitosis-admin.git倉庫如:
將Git伺服器中gitosis-admin.git倉庫clone下來([email protected]是我建的Git伺服器相應的換成你建的Git伺服器即可)
Clone正確會顯示如下資訊
clone下來會有一個gitosis.conf的設定檔和一個keydir的目錄。gitosis.conf用於配置使用者的許可權資訊,keydir主要使用者存放ssh公開金鑰檔案(一般以“使用者名稱.pub”命名,gitosis.conf設定檔中需使用相同使用者名稱),用於伺服器認證請求的用戶端機器。
將本機器上產生相應的.ssh檔案夾中的id_rsa.pub公開金鑰檔案,按使用者名稱命名為如[email protected],複製到keydir目錄下
編輯gitosis.conf檔案,設定許可權
將本機使用者名稱(如[email protected])添加,並賦予許可權
這些配置的修改只是在本地修改的,還需要推送到伺服器中才會生效
上述的git add . 和git commit –am “add a user”是儲存和提交到本地
git push origin master表示將上述修改內容推送到Git伺服器
推送成功會顯示下面提示資訊
至此,Git伺服器就有和上述配置的keydir和gitosis.conf一樣的資訊
如我在Git伺服器中已建立好了一個teamwork.git倉庫用來管理項目如:
那麼,現在就可以在本機上從Git伺服器中clone teamwork.git以及做了修改後進行推送到git伺服器
首先在本機先建立一個檔案夾myrepository
進入到myrepository下複製teamwork.git
得到teamwork.git倉庫如所示
現在在本地的teamwork.git倉庫中建立readme檔案,然後進行提交和推送
每當Git伺服器中teamwork.git倉庫有更新時,可以在本機上通過git pull命令擷取最新版本的資料(注意要到teamwork目錄內)
此時本機teamwork.git倉庫中就有了其他開發機推送的最新版本的資料(如果其他開發機push了最新資料)。
至此,本虛擬機器就可以從Git伺服器進行pull和push操作了。
2、在windows上對Git伺服器進行pull和push
首先下載安裝windows版本的git用戶端軟體,:http://msysgit.github.io/
安裝完成後,在開始菜單裡找到“Git”->“Git Bash”,蹦出一個類似命令列視窗的東西,就說明Git安裝成功!(windows以[email protected]為例)
按照Ubuntu中的方法將.ssh檔案夾中的id_rsa.pub檔案按使用者名稱命名成[email protected],複製到keydir檔案夾,修改gitosis.conf檔案,進行提交和推送到git伺服器。
擷取之前在Ubuntu中推送的內容如
開啟相應的檔案夾,裡面已經有了在Ubuntu下建立的檔案readme
再在windows下建立一個檔案experiment.txt
在本地添加、提交,然後推送到git伺服器
使用git pull命令就會獲得git伺服器上的最新更新(表示的是此時已是最新版本)
同理,這時你也可以再Ubuntu虛擬機器下pull擷取teamwork倉庫項目的最新版本。
這樣在不同開發機之間通過git實現版本控制。
如果您有什麼不理解的地方歡迎留言交流,文中有您的地方,希望海涵並給予指正。如果您覺得文章對您有所協助,您的留言和推薦將對我是莫大的鼓舞!
如需轉載本文,請註明來源: http://www.cnblogs.com/changjianqiu/
項目實踐中--Git伺服器的搭建與使用指南(轉)