配置git伺服器地址
① 如何設置git伺服器遠程連接地址
git remote add
usage: git remote add [<options>] <name> <url>
-f, --fetch fetch the remote branches
--tags import all tags and associated objects when fetching
or do not fetch any tag at all (--no-tags)
-t, --track <branch> branch(es) to track
-m, --master <branch>
master branch
--mirror[=<push|fetch>]
set up remote as a mirror to push to or fetch from
② centos 7 配置git server 詳解
首先我們得需要安裝Open SSH Server 確保centos7可以被遠程訪問。
需要修改配置文件 /etc/ssh/sshd_config
使用如下指令對SSH服務進行停止、啟動、重啟等操作
使用yum安裝git
建立Git賬戶
創建一個單獨的git賬戶用以進行Git操作
限制git賬戶登錄
開啟SSH RSA 驗證
因為關閉git賬戶的遠程登錄,因此需要啟動ssh的rsa驗證以確保可以使用該種方式連接到git server ,修改如下配置
再/home/git目錄下創建一個空的倉庫(一般以.git結尾),裸倉庫是沒有工作區的,純粹為了共享
1、在伺服器初始化一個本地倉庫,這個倉庫就是你虛擬主機指定的文件夾,也就是你輸入域名後會訪問到的那個文件夾
2、在中央倉庫中設置鉤子
進入遠程倉庫的鉤子目錄
回到客戶端,在 Git Bash 中使用如下指令從服務端中拷貝創建的 Git 倉庫。
結束了~~~
參考地址:
https://www.jianshu.com/p/2f3093791d91 介紹如何配置git server
https://segmentfault.com/a/1190000009673544 介紹git鉤子的使用
③ 在linux下搭建Git伺服器
眾所周知,版本系統在開發環境中是必不可少的,但是我們可以把代碼免費的託管到GitHub上,如果我們不原意公開項目的源代碼,公司又不想付費使用,那麼我們可以自己搭建一台Git伺服器,可以用Gitosis來管理公鑰,還是比較方便的。
搭建環境:
伺服器 CentOS6.6 + git(version 1.8.3.1)
客戶端 Windows10 + git(version 2.11.1.windows.1)
1. 安裝Git相關軟體
Linux是伺服器端系統,Windows作為客戶端系統,分別安裝Git
安裝客戶端:
下載 Git for Windows,地址:https://git-for-windows.github.io/
安裝完之後,可以使用Git Bash作為命令行客戶端。
安裝Gitosis
出現下面的信息表示安裝成功了
2. 伺服器端創建git用戶來管理Git服務
3. 配置公鑰
在Windows上配置管理者,git伺服器需要一些管理者,通過上傳開發者機器的公鑰到伺服器,添加成為git伺服器的管理者,打開git命令行
4. 配置gitosis
使用git用戶並初始化gitosis
在Windows上機器上clone gitosis-admin到管理者主機
gitosis.conf: git伺服器配置文件
keydir: 存放客戶端公鑰
配置 gitosis.conf 文件
在Windows管理者機器上創建本地test倉庫,並上傳到git服務端
提交到遠程伺服器
服務端會自動創建test倉庫
5.添加其他git用戶開發者
由於公司開發團隊人數不斷增多,手動添加開發者私鑰到/home/git/.ssh/authorized_keys比較麻煩,通過上面的Windows機器的管理者統一收集其他開發者的私鑰id_rsa.pub文件,然後傳到伺服器上,配置好後,用戶即獲得項目許可權,可以從遠程倉庫拉取和推送項目,達到共同開發項目。
推送完成後,新加進來的開發者就可以進行項目的開發了,後續增加人員可以這樣添加進來,開發者直接把倉庫clone下來就可以了。
④ linux系統下怎麼搭建git伺服器
我們很多人知道Git可能是從Github開始的。因為Github是如此流行,幾乎所有寫代碼的人都知道它,以至於一提到Git就以為是Github,其實兩者並沒有多少關系,只是名字類似而已(這有點像Java和JavaScript)。
152855_dxab_940492.png
實際上,Git是一個分布式版本控制軟體,原來是Linux內核開發者Linus Torvalds為了更好地管理Linux內核開發而創立的。雖然Git比SVN優秀很多,但它們最初被設計出來的想法是一致的,那就是版本控制。而Github卻是一個網站,充當Git公共伺服器的作用,只要擁有Github賬號的人都可以把自己的項目託管在那裡,如果你捨不得花些錢,你的項目是強制公開的。所以,Github就是一個通過Git協議為眾多開發者提供代碼託管的地方,同時它提供了很多特性,第一次使得大家可以這么公開地討論起各自的項目。
153043_4iw8_940492.png
上面之所以說這么多,是因為今天要講的Gitosis有點類似Github的功能。什麼意思呢?就是我們可以在自己的伺服器上安裝Gitosis,那麼這台伺服器就可以向Github一樣對外提供代碼託管服務了,這對於很多不願意把自己的代碼公諸於世的公司來說最好不過了。
這里以CentOS充當伺服器為例給大家講解一下Gitosis的安裝和配置。
1.編譯安裝git
yum install git
2.安裝gitosis
$ yum install python python-setuptools
$ git clone git://github.com/res0nat0r/gitosis.git
$ cd gitosis
$ python setup.py install
網址:https://github.com/res0nat0r/gitosis
3.在開發機器上生成公共密鑰(用來初始化gitosis)
$ ssh-keygen -t rsa #不需要密碼,一路回車就行(在本地操作)
$ scp ~/.ssh/id_rsa.pub root@xxx:/tmp/ # 上傳你的ssh public key到伺服器
4.初始化gitosis[伺服器端]
$ adser git # 新增一個git用戶(先添加用戶組 groupadd git)
$ su git # 切換倒git用戶下
$ gitosis-init < /tmp/id_rsa.pub # id_rsa.pub是剛剛傳過來的,注意放在/tmp目錄主要是因為此目錄許可權所有人都有定許可權的
$ rm /tmp/id_rsa.pub # id_rsa.pub已經無用,可刪除.
5.獲取並配置gitosis-admin [客戶端]
$ git clone git@xxx:gitosis-admin.git # 切換到root用戶並在本地執行,獲取gitosis管理項目,將會產生一個gitosis-admin的目錄,裡面有配置文件gitosis.conf和一個 keydir 的目錄,keydir目錄主要存放git用戶名
$ vi gitosis-admin/gitosis.conf # 編輯gitosis-admin配置文件
如果無法git clone的話,可以使用git clone git@xxx:/home/git/repositories/gitosis-admin.git
# 在gitosis.conf底部增加
[group 組名]
writable = 項目名
members = 用戶 # 這里的用戶名字 要和 keydir下的文件名字相一致
# VI下按ZZ(大寫)兩次會執行自動保存並退出,完成後執行
$ cd gitosis-admin
$ git add .
$ git commit -a -m 「xxx xx」 # 要記住的是,如果每次添加新文件必須執行git add .,或者git add filename,如果沒有新加文件,只是進行修改的話就可以執行此句。
# 修改了文件以後一定要PUSH到伺服器,否則不會生效。
$ git push
如果在git push的時候,遇到錯誤「ddress 192.168.0.77 maps to bogon, but this does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!」,解決為修改/etc/hosts文件,將ip地址與主機名對應關系寫進去就可以了。
注意:這里我們並沒有進行任何的修改的,現在只有一個管理git的項目。下面的為新添加項目的配置,大家經常用到的也就是下面的操作的。
新建項目
到此步就算完成gitosis的初始化了。接下來的是新建一個新項目到伺服器的操作,如第5步中配置gitosis.conf文件添加的是
[group project1] # 組名稱
writable = project1 # 項目名稱
members = xxx # 用戶名xxx一定要與客戶端使用的用戶名完全一樣,否則無許可權操作
提交修改並更新到git server服務端
$ git commit -a -m 「添加新項目project1,新項目的目錄是project1,該項目的成員是xxx「 # 「」里的內容自定
$ git push
將新創建的項目提交到git server 上進行登記。以便客戶可以操作新項目.
# 在客戶端創建項目目錄(客戶端,當前用戶為 XXX )
現在回到開發者客戶端,上面創建了一個新項目project1並提交到了git server 。我們這里就創建此項目的信息.注意 項目名稱 project1要與gitosis.conf文件配置一致,
$ mkdir /home/用戶/project1
$ cd /home/用戶/project1
$ git init
$ git add . # 新增文件 留意後面有一個點
$ git commit -a -m 「初始化項目project1″
# 然後就到把這個項目放到git server伺服器上去.
$ git remote add origin git@xxx:project1.git # xxx為伺服器地址
$ git push origin master
# 也可以把上面的兩步合成一步
$ git push git@xxx:project1.git master
說明:如果在執行 git push origin master 的時候,提示以下錯誤:
error: src refspec master does not match any.
error: failed to push some refs to 『[email protected]:pro2.git』
這是由於項目為空的原因,我們在項目目錄里新創建一個文件。經過->add -> commit -> push 就可以解決了
$ touch a.txt
$ git add a.txt
$ git commit -a -m 『add a.txt』
$ git push
————————————————————————————————
如果在git clone的時候遇到「
error: cannot run ssh: No such file or directory – cygwin git
」錯誤,則表示本機沒有安裝ssh命令。安裝方法請參考:http://blog.haohtml.com/archives/13313
有時候我們要更換電腦來重新開發項目。這個時候,只需要將id_rsa私鑰放在home目錄里的.ssh目錄里就可以了。
⑤ 搭建Git伺服器及備份伺服器
OS:CentOS 7.2
Git:1.8.3.1
備份模式:
以下步驟以雙機備份為例,單機備份同理,只是在鏡像git項目的時候把git url換成單機中的git項目目錄即可。
首先,查看系統軟體庫中是否有git和git的版本:
CentOS 7.2環境下的輸出如下:
CentOS 7.x版本的倉庫中已經附帶了1.8.3.1版本的git,可以直接安裝。
CentOS 6.x中的git是1.7.x版本,自帶庫中git版本低的linux發行版可以添加git1.8.3.1的源來安裝git,但這個操作要求本機能訪問互聯網
其他版本的git理論上也可以,請自行測試
結果最後顯示「安裝完成」或「Complete」表示安裝成功。可以直接使用git命令測試一下:
輸出如下表示git安裝成功並可用。
創建一個git用戶,用來提供給外部用戶以git url的方式訪問git庫。
在用戶目錄或其他對外目錄中創建 /git/repos 目錄,用來存放git庫。
注意: 盡量使用git用戶來創建該目錄,方便以後git操作該目錄,如果是使用其他用戶創建的,記得使用以下命令將該目錄的owner改為git:
為了方便訪問,可以在根目錄下創建一個軟鏈連接到該目錄:
這樣設置後,假如以後有一個庫叫 test.git ,那麼就可以通過以下url來訪問git庫了:
創建一個測試庫用來測試備份及連通性。
同主GIT伺服器的《安裝git》章節。
同主GIT伺服器的《創建git庫目錄》章節。
目錄結構盡量與主git伺服器上的結構一致,如果不一致,使用軟鏈的形式將git url配置為與主git伺服器一致,這樣保證在切換伺服器時,客戶端不用做修改操作。
以上個步驟中創建的 test.git 為例:
這樣,主git伺服器中的 test.git 就鏡像到備份機中了。
如果主伺服器的git項目發生了變更,可以將變更同步到備份機。
將以上同步命令寫成腳本,添加一個定時任務來定時同步即可。
(待補充)
備份同步時每次都需要輸入主git伺服器的密碼,比較麻煩,也不利於定時同步的腳本操作,可以使用ssh免密登錄的方式,在主伺服器上配置備份伺服器的公鑰。
一路Enter(回車鍵),完成後會列印出密鑰的生成位置,通常在用戶主目錄的 .ssh 目錄中。默認情況下會生成以下兩個文件:
一定要注意上述命令中的第三步,許可權要設置對,否則認證不過去不能免密登錄。
如果在實際運行中,主git伺服器掛了一段時間,在這段時間里一直是備份git伺服器在工作,那麼在修復好主伺服器後需要將這一段時間的變更同步回主伺服器。
操作完成後備份庫自上一次同步後的更改都推送到了主庫。
⑥ windows下怎麼配置git伺服器
安裝msysgit 安裝步驟此處略去。 安裝CopSSH 安裝步驟此處略去。 修改配置 修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,確保如下行為非注釋行,且設置為「no」: 生成用戶帳號 1在伺服器上生成Windows用戶,取消用戶下次登錄時須更改密碼,設置密碼永不過期: 2將該用戶隸屬於GitUser組(如尚未生成改組,則先生成改組): 激活用戶 1在Windows啟動程序組中,運行如下程序(C:\Program Files\ICW\bin\ copsshcp.exe): 2進入COPSSH ControlPanel應用對話框,正常情況下服務應該為正在運行(圖標為綠色,如為紅色,則可嘗試點選該按鈕,啟動該服務): 3選擇Users頁面: 4點選Add按鈕,出現如下導航對話框: 5選擇Forward按鈕,出現如下頁面,選擇欲激活的用戶對應的域名及用戶名: 6選擇Forward按鈕,進入如下頁面,選擇Linuxshell and Sftp,所有選項選中: 7選擇Forward按鈕,進入確認頁面,選擇Apply: 8回到如下頁面,選擇Apply後,關閉。 公鑰文件上傳 1從用戶處取得對應帳戶的公鑰文件authorized_keys,復制到C:\ProgramFiles\ICW\home\ricky\.ssh目錄下(\ricky\是對應的用戶名); 2Windows啟動程序組中運行Start a UnixBASH Shell(或Windows運行中運行命令:"C:\Program Files\ICW\bin\bash.exe" --login -i): 3運行如下unix命令行,如運行未出錯,則完畢。 生成Git庫容器目錄 1在伺服器硬碟上生成一個目錄,用來容納Git庫,比如生成E:\ GITTestRepo\目錄; 2滑鼠右鍵點擊該目錄,選擇共享和安全…; 3在彈出的該目錄屬性對話框的安全頁中加入用戶對應的組GitUser; 4確認該用戶組許可權設置了允許修改、讀取和運行、列入文件夾目錄、讀取、寫入,選擇確定後完畢。 確認防火牆開放了22埠 確認伺服器的防火牆沒有禁止22埠的TCP/IP通信。 修改用戶登錄運行腳本 1修改C:\ProgramFiles\ICW\home\ricky\.bashrc文件(\ricky\是對應的用戶名),在文件最後加入如下行:
⑦ 怎麼在windows下架設Git伺服器
1、打開控制面板->管理工具->服務項目,禁用Windows防火牆服務。
2、打開控制面板->管理工具,雙擊「路由和遠程訪問」。然後右鍵點擊伺服器圖標,再點擊「配置並啟用路由和遠程訪問」。
3、在「路由和遠程伺服器安裝向導」中,選擇「自定義配置」。
4、勾選「VPN訪問」和「NAT和基本防火牆」。
5、點擊「完成」。系統提示「要開始服務嗎?」,選擇「是」。
6、接下來開始配置路由和遠程訪問,我們先點擊本地服務旁邊的+按鈕,把左側菜單展開,再點擊IP路由選擇旁邊的+按鈕。
7、下面配置靜態IP地址。右鍵點擊本地服務,點擊屬性,再點擊IP選項卡。
8、點選「靜態地址池」,點擊「添加」。輸入一個起始IP地址和結束IP地址范圍,推薦輸入192.168.1.100到192.168.1.254這個范圍,因為192.168段屬於本地保留IP段。最後點擊「確定」。
9、右鍵點擊「靜態路由」,再點擊「新建靜態路由」。
10、目標和網路掩碼都輸入0,網關請和TCP/IP屬性中的默認網關保持一致。
11、刪除「DHCP中繼代理程序」中的「內部」項目。
12、然後右鍵點擊「DHCP中繼代理程序」,再點擊「新增介面」。
13、選擇「本地連接」,再點擊「確定」,然後在彈出的對話框中點擊「確定」。
14、右鍵點擊「NAT/基本防火牆」,再點擊「新增介面」,然後選擇「本地連接」,點擊「確定」。
15、在彈出的對話框中先點選「公共介面連接到Internet」,再勾選「在此介面上啟用NAT」,最後點擊「確定」。
⑧ 搭建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就是這個工具。
⑨ 區域網內創建git伺服器的簡單方法
當資源有限,但是項目同時需要幾個人協同開發,我們就需要配置一個簡單的區域網內的git伺服器,方便協同開發。
首先我們新建遠端的git目錄,目錄名和本地倉庫名一致,並且在目錄下運行:
git init --bare
一個空的git倉庫就建立好了。然後我們需要把本地的倉庫和遠端的關聯起來。具體做法是,在本地git倉庫的目錄下執行:
git remote add origin ssh://用戶名@ip/倉庫路徑
比如:git remote add origin ssh://[email protected]/home/android/projects/gitserver/demoproject/。完成後,本地的提交,就可以push到遠端啦。比如:
git push origin master
就可以把本地的master推送到遠端。協同開發的同事可以通過如下命令獲取遠端的倉庫
git clone ssh://[email protected]/home/android/projects/gitserver/demoproject/
是不是很簡單呢
ps:實際使用過程中發現了一個問題,即本機的ip地址不是靜態的。如何解決這個問題呢?可以在每次ip改變以後,重置倉庫的origin url:
git remote set-url origin {url}