一、前言
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
以下截圖及步驟均以hesonglin@master這台虛擬機操作為例
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下來(git@218.108.45.14是我建的Git服務器相應的換成你建的Git服務器即可)
Clone正確會顯示如下信息
clone下來會有一個gitosis.conf的配置文件和一個keydir的目錄。gitosis.conf用於配置用戶的權限信息,keydir主要用戶存放ssh公鑰文件(一般以“用戶名.pub”命名,gitosis.conf配置文件中需使用相同用戶名),用於服務器認證請求的客戶端機器。
將本機器上生成相應的.ssh文件夾中的id_rsa.pub公鑰文件,按用戶名命名為如hesonglin@master.pub,復制到keydir目錄下
編輯gitosis.conf文件,設置權限
將本機用戶名(如hesonglin@master)添加,並賦予權限
這些配置的修改只是在本地修改的,還需要推送到服務器中才能生效
上述的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以chang@CHANG-PC為例)
按照Ubuntu中的方法將.ssh文件夾中的id_rsa.pub文件按用戶名命名成chang@CHANG-PC.pub,復制到keydir文件夾,修改gitosis.conf文件,進行提交和推送到git服務器。
獲取之前在Ubuntu中推送的內容如下圖
打開相應的文件夾,里面已經有了在Ubuntu下新建的文件readme
再在windows下新建一個文件experiment.txt
在本地添加、提交,然后推送到git服務器
使用git pull命令就會獲得git服務器上的最新更新(下圖表示的是此時已是最新版本)
同理,這時你也可以再Ubuntu虛擬機下pull獲取teamwork倉庫項目的最新版本。
這樣在不同開發機之間通過git實現版本控制。
如果您有什么不理解的地方歡迎留言交流,文中有誤導您的地方,希望海涵並給予指正。如果您覺得文章對您有所幫助,您的留言和推薦將對我是莫大的鼓舞!
如需轉載本文,請注明來源: http://www.cnblogs.com/changjianqiu/