1、搭建git伺服器需要什麼樣的配置
搭建Git伺服器需要准備一台運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。
假設你已經有sudo許可權的用戶賬號,下面,正式開始安裝。
第一步,安裝git:
$ sudo apt-get install git
第二步,創建一個git用戶,用來運行git服務:
$ sudo adser git
第三步,創建證書登錄:
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:
$ sudo git init --bare sample.git
Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
$ sudo chown -R git:git sample.git
第五步,禁用shell登錄:
出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。
第六步,克隆遠程倉庫:
現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
剩下的推送就簡單了。
管理公鑰
如果團隊很小,把每個人的公鑰收集起來放到伺服器的/home/git/.ssh/authorized_keys文件里就是可行的。如果團隊有幾百號人,就沒法這么玩了,這時,可以用Gitosis來管理公鑰。
這里我們不介紹怎麼玩Gitosis了,幾百號人的團隊基本都在500強了,相信找個高水平的Linux管理員問題不大。
管理許可權
有很多不但視源代碼如生命,而且視員工為竊賊的公司,會在版本控制系統里設置一套完善的許可權控制,每個人是否有讀寫許可權會精確到每個分支甚至每個目錄下。因為Git是為Linux源代碼託管而開發的,所以Git也繼承了開源社區的精神,不支持許可權控制。不過,因為Git支持鉤子(hook),所以,可以在伺服器端編寫一系列腳本來控制提交等操作,達到許可權控制的目的。Gitolite就是這個工具。
2、什麼是git伺服器?
Git是目前世界上最先進的分布式版本控制系統(沒有之一)。
Git有什麼特點?簡單來說就是:高端大氣上檔次!
那什麼是版本控制系統?
如果你用Microsoft Word寫過長篇大論,那你一定有這樣的經歷:
想刪除一個段落,又怕將來想恢復找不回來怎麼辦?有辦法,先把當前文件「另存為……」一個新的Word文件,再接著改,改到一定程度,再「另存為……」一個新文件,這樣一直改下去,過了一周,你想找回被刪除的文字,但是已經記不清刪除前保存在哪個文件里了,只好一個一個文件去找,真麻煩。
看著一堆亂七八糟的文件,想保留最新的一個,然後把其他的刪掉,又怕哪天會用上,還不敢刪,真郁悶。
更要命的是,有些部分需要你的財務同事幫助填寫,於是你把文件Copy到U盤里給她(也可能通過Email發送一份給她),然後,你繼續修改Word文件。一天後,同事再把Word文件傳給你,此時,你必須想想,發給她之後到你收到她的文件期間,你作了哪些改動,得把你的改動和她的部分合並,真困難。
於是你想,如果有一個軟體,不但能自動幫我記錄每次文件的改動,還可以讓同事協作編輯,這樣就不用自己管理一堆類似的文件了,也不需要把文件傳來傳去。如果想查看某次改動,只需要在軟體里瞄一眼就可以,豈不是很方便?
這個軟體用起來就應該像這個樣子,能記錄每次文件的改動:
版本 用戶 說明 日期
1 張三 刪除了軟體服務條款5 7/12 10:38
2 張三 增加了License人數限制 7/12 18:09
3 李四 財務部門調整了合同金額 7/13 9:51
4 張三 延長了免費升級周期 7/14 15:17
這樣,你就結束了手動管理多個「版本」的史前時代,進入到版本控制的20世紀。
搭建Git伺服器
搭建Git伺服器需要准備一台運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。
假設你已經有sudo許可權的用戶賬號,下面,正式開始安裝。
第一步,安裝git:
$ sudo apt-get install git
第二步,創建一個git用戶,用來運行git服務:
$ sudo adser gi
第三步,創建證書登錄:
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:
$ sudo git init --bare sample.git
Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
$ sudo chown -R git:git sample.git
第五步,禁用shell登錄:
出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bas
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。
第六步,克隆遠程倉庫:
現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
剩下的推送就簡單了。
管理公鑰
如果團隊很小,把每個人的公鑰收集起來放到伺服器的/home/git/.ssh/authorized_keys文件里就是可行的。如果團隊有幾百號人,就沒法這么玩了,這時,可以用Gitosis來管理公鑰。
這里我們不介紹怎麼玩Gitosis了,幾百號人的團隊基本都在500強了,相信找個高水平的Linux管理員問題不大。
管理許可權
有很多不但視源代碼如生命,而且視員工為竊賊的公司,會在版本控制系統里設置一套完善的許可權控制,每個人是否有讀寫許可權會精確到每個分支甚至每個目錄下。因為Git是為Linux源代碼託管而開發的,所以Git也繼承了開源社區的精神,不支持許可權控制。不過,因為Git支持鉤子(hook),所以,可以在伺服器端編寫一系列腳本來控制提交等操作,達到許可權控制的目的。Gitolite就是這個工具。
這里我們也不介紹Gitolite了,不要把有限的生命浪費到許可權斗爭中。
3、git伺服器端有幾種辦法
Git 可以使用四種主要的協議來傳輸數據:本地傳輸,SSH 協議,Git 協議和 HTTP 協議。
Git是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。
Git的主要功能:
1. 檢查電子郵件或其他方式來檢查提交狀態的平均開發人員。
2. 修補程序並解決沖突(您自己或要求開發人員稍後重新提交它,如果它是一個開源項目,請確定哪些修補程序可以工作,哪些不能)。
3.將結果提交到公共伺服器,然後通知所有開發人員。
(3)git伺服器有哪些擴展資料:
Git的優缺點:
優點:
1. 適合分布式開發,強調個人。
2. 公共伺服器壓力和數據量不是太大。
3.快速和靈活。
4.任何兩個開發人員之間的沖突都可以很容易地解決。
5. 離線工作。
缺點:
1. 數據很少(至少是中文)。
2. 學習周期相對較長。
3.不符合傳統思維。
4. 可憐的代碼的機密性。一旦開發人員克隆了整個庫,所有代碼和版本信息都可以完全公開。
4、git 運行在伺服器倉庫的鉤子有哪些
Pro git 中介紹了 git 鉤子的幾種類型,其中和服務端相關的有:
pre-receive
在客戶端推送時最先執行版,可以用它來拒權絕客戶端的推送。
update
與 pre-receive 類似,但會在每個分支都執行一次。
post-receive
在客戶端推送完成後執行。
根據我的需求,我選擇 post-receive 鉤子來做這件事。因為我不希望拒絕客戶端的推送(那樣程序員們可能不知道該怎麼辦)。推送總是會成功的,只是 命令 不成功而已。碰到 命令 不成功的情況,客戶端只需要再次推送一個正確的 命令 即可。
關於 命令 的配置,後面會詳述。
5、什麼是「git」伺服器?
1、git是一種分布式的版本管理系統,Linux的創造者Linus寫的。
2、GitHub是基於git的代碼庫託管站,也算是程序員的SMS(以碼會友),其中一個主要的開源代碼發布或託管站
3、git的作用就是對文件進行版本管理,方便在不同版本進行切換修改,類似文件分不同時間備份讓後需要時找回其中一份代替,不過更方便使用。
4、GitHub某種程度上就是代碼的網盤,也有開源開發商作為代碼發布、存放、徵集Bug和意見用。
5、git的特點:
1)就是雲的概念,代碼可以存在雲端git的網站上,就像我們在各種設備間都能瀏覽到自己存儲的網盤文件 一樣,我們在各個設備間都能訪問到自己的代碼。
2)它的社交屬性。因為代碼是開源的,每個人都可以瀏覽別人的項目並提出意見,而且它像微博一樣,你能粉別人,也能被別人粉。如果你是大牛,如果你或者你的項目夠有趣,你就會有很多粉絲,你的項目也會被更多的人star。
3)它能給團隊合作帶來很大幫助。現在有些公司就是用github來開發項目的。github允許多人多分支的工作,並且標示別人的修改和備注,最後還能合並。
6、Linux下有什麼好的Git伺服器軟體
GitLab是利用 Ruby on Rails 一個開源的版本管理系統,實現一個自託管的Git項目倉庫,可通過Web界面進行訪回問公開的或答者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現代碼復用,便於日後有需要的時候進行查找。在線DEMO
7、git 服務端 客戶端 有什麼區別
請在此輸入您的回答
Git是分布式的,並沒有服務端跟客戶端之分,所謂的服務端安裝回的其實也是git。Git支持四答種協議,file,ssh,git,http。ssh是使用較多的,下面使用ssh搭建一個免密碼登錄的服務端。
1、提前安裝git跟sshserver;
2、 創建一個用戶,用來運行git服務;
新建一個用戶,叫gituser,然後切換到gituser的默認目錄,創建一個叫.ssh的文件夾,並在其中創建一個叫authorized_keys的文件,這個文件將用於存儲git開發者的ssh公鑰。
8、linux 自帶了 git伺服器嗎
沒有的 要自己安裝呢
這是教程http://blog.csdn.net/xiaohuangcat/article/details/12910837
希望幫到樓主 給個採納吧版 有不懂可以追問權
9、什麼是git伺服器
Git是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。
Git的主要功能:
1、查看郵件或者通過其它方式查看一般開發者的提交狀態。
2、打上補丁,解決沖突(可以自己解決,也可以要求開發者之間解決以後再重新提交,如果是開源項目,還要決定哪些補丁有用,哪些不用)。
3、向公共伺服器提交結果,然後通知所有開發人員。
(9)git伺服器有哪些擴展資料:
Git的優缺點:
優點:
1、適合分布式開發,強調個體。
2、公共伺服器壓力和數據量都不會太大。
3、速度快、靈活。
4、任意兩個開發者之間可以很容易的解決沖突。
5、離線工作。
缺點:
1、資料少(起碼中文資料很少)。
2、學習周期相對而言比較長。
3、不符合常規思維。
4、代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。