當前位置:首頁 » 雲伺服器 » win7git伺服器搭建

win7git伺服器搭建

發布時間: 2022-12-29 23:30:37

『壹』 如何在windows下安裝GIT

Windows下Git安裝指南
參考《Git權威指南》安裝整理,圖書配套網址參見【1】
1. Cygwin下安裝配置Git
1. 在Windows下安裝配置Git有2種不同的方案
(1)msysGit, (2)Cygwin下使用Git。
作者推薦在Cygwin下使用Git,因為在Cygwin下很容易獲得與Git使用相關的一些開源工具。而msysGit不能滿足這個需求。
2. 首先要安裝Cygwin
初次安裝Cygwin時建議全部安裝,這樣就不會出現一些缺少模塊的錯誤,而且Git也會被一同安裝上,新手使用,比較省心。
3. 忽略文件許可權的可執行位 (P39)
通過下面的配置可禁止Git對文件許可權的跟蹤
$ git config --system core.fileMode false

上面的命令修改的是 D:\cygwin64\etc 下的 gitconfig文件,也就是Git的system的配置文件。
4. Git中文支持
Cygwin下Git對中文支持非常好,除了下面一點:文件名中含中文的文件,在工作區,查看狀態,查看歷史更改概要等,文件名中的中文不能正常顯示。
解決辦法:
$ git config --global core.quotepath false

上面的命令修改的是 D:\cygwin64\home\msi 下的.gitconfig 文件,也就是Git在該用戶下的全局配置文件。
5. Cygwin下Git訪問SSH服務
以公鑰認證方式訪問SSH協議的Git伺服器時無需輸入口令,而且更安全。(訪問HTTP協議的Git伺服器時,每次都需要輸入口令。)
然而書中的內容不太明確。可以參考【2】【3】的方法。
(1)創建SSH Key
打開cygwin後,默認是在home目錄「~」下。使用cygpath命令可以查看~目錄對應的windows下的路徑
$ cygpath -w ~/
D:\cygwin64\home\msi\

所以ssh-keygen命令生成的.ssh目錄是在 D:\cygwin64\home\msi\ 目錄下面。
$ ssh-keygen -t rsa -C "[email protected]"

一路回車,使用默認值即可,也無需設置密碼。在用戶主目錄里找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰。
(2)設置GitHub SSH Keys。
登陸GitHub->Settings->「SSH Keys」,然後,點「Add SSH Key」,起個Title,在Key文本框里粘貼id_rsa.pub文件的內容,點「Add Key」。
(3)創建Repository
注意repository的名字要與本地Git庫的名字一致。其他保持默認即可。
(4)根據GitHub給出的提示,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然後,把本地倉庫的內容推送到GitHub倉庫。
這里,把本地倉庫的內容推送到GitHub倉庫。
$ git remote add origin [email protected]:zhchnchn/learngit.git

然後,就可以把本地庫的所有內容推送到遠程庫上:
$ git push -u origin master

注意,在這一步會跳出一個問題讓你選擇,因為這是首次連接SSH伺服器,還未建立對該SSH伺服器的信任。選yes即可。可以看到,選yes之後,將GitHub的SSH伺服器添加到了本地的known hosts中。

$ git push -u origin master
The authenticity of host 'github.com (192.30.252.131)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.131' (RSA) to the list of known hosts.
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 268 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:zhchnchn/learngit.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

從現在起,只要本地作了提交,就可以通過命令:
$ git push origin master

把本地master分支的最新修改推送至GitHub。
2. Win7下安裝配置Git
2.1 msysGit
2.1.1 下載
http://msysgit.github.io/
當前版本是Git-1.9.4-preview20140929
2.2.2 安裝
1. 安裝過程中,詢問是否修改環境變數,選擇「Use Git Bash Only」. 即只在msysGit提供的Shell
(NOTE: 這個步驟最好選擇第二項「Use Git from the Windows Command Prompt」, 這樣在Windows的命令行cmd中也可以運行git命令了。這樣會對以後的一些操作帶來方便,
比如Win7下安裝配置gVim(http://www.cnblogs.com/zhcncn/p/4151701.html))
2. 配置行結束標記,保持默認「Checkout Windows-style, commit Unix-style line endings」.
2.2.3 中文亂碼問題解決方法
1. ls 不能顯示中文目錄
解決辦法:在git/git-completion.bash中增加一行【4】:
alias ls='ls --show-control-chars --color=auto'

另外,Git Shell 不支持 ls -l的縮寫形式ll,也為其添加一個alias
alias ll='ls -l'

2.2.4 運行 Git 前的配置
1. 配置你個人的用戶名稱和電子郵件地址
$ git config --global user.name "xxx"
$ git config --global user.email [email protected]

2. 配置GitHub SSH
(1)首先使用 ssh-keygen 生成 SSH 密鑰
$ ssh-keygen -t rsa -C "[email protected]"

(2)參考上面Cygwin下的配置方法,配置Github SSH。
2.2 TortoiseGit
2.1.1 下載
http://download.tortoisegit.org/tgit/
當前版本是TortoiseGit-1.8.11.0-64bit.
如需簡體中文版,應同時下載 zh_CN 語言包:TortoiseGit-LanguagePack-1.8.11.0-64bit-zh_CN.msi.
注意,語言包也要相應的為64位的。
2.2.2 安裝TortoiseGit
1. 在「Choose SSH Client」選擇界面,保持默認選擇「TortoiseGitPlink...」
2. 在「Custom Setup」界面,保持默認值,Location改為D盤
2.2.3 安裝中文語言包
雙擊安裝完成即可。
2.2.4 設置
在桌面空白處點擊右鍵,右鍵菜單中可以看到已經加入了TortoiseGit快捷鍵
1. 選擇「Settings」,進入「Settings-TortoiseGit」界面,選擇「General」選項卡,設置本機器的 git 路徑(一般會默認設置好的,比如我本地Git路徑D:\Program Files (x86)\Git\bin就默認已經設置好了),並選擇語言為 中文(簡體);
2. 選擇「Network」選項卡,查看SSH路徑。SSH 默認已設置好了(D:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe )
3. 選擇「Git」選項卡,查看用戶名、郵箱,發現也已經被默認設置好了。
2.2.5 使用TortoiseGit下載代碼
1. 在目標目錄下點擊右鍵,選擇 「git 克隆」, 添加版本庫地址 URL(比如https://github.com/zhchnchn/VimConfig.git)。
NOTE:必須是https類型的url。SSH類型的url會克隆失敗。
2. 點擊 ok 即可下載一份新版本庫。
2.3 VS2013集成Git
1. 可以通過VS2010自帶的擴展管理器安裝。
2. 在 vs 菜單中點擊「工具」/「擴展管理器」,在右上角搜索框中直接輸入「Git」搜索,選擇Git Source Control Provider」,然後點擊「Download」,下載完成後直接安裝,安裝後重啟 VS2010 即可。
3. 關於該插件如何使用,請參考【7】
References
【1】Git權威指南 (http://www.worldhello.net/gotgit/index.html)
【2】廖雪峰Git教程-遠程倉庫(http://www.liaoxuefeng.com/wiki//)
【3】廖雪峰Git教程-添加遠程庫(http://www.liaoxuefeng.com/wiki//)
【4】git windows中文目錄亂碼問題解決(http://blog.chinaunix.net/uid-9789774-id-3080448.html)
【5】msysgit + TortoiseGit:在 windows 上安裝配置版本控制工具 Git 圖形化使用(http://lzw.me/a/msysgit-tortoisegit-win-git.html)
【6】Win7上Git安裝及配置過程(http://blog.chinaunix.net/uid-25806493-id-3319781.html)
【7】Git Source Control Provider(http://gitscc.codeplex.com/documentation)

『貳』 如何在windows上創建一個git伺服器

安裝msysgit

安裝步驟此處略去。

END
安裝CopSSH

安裝步驟此處略去。
END
修改配置

修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,確保如下行為非注釋行,且設置為「no」:

END
生成用戶帳號

1
在伺服器上生成Windows用戶,取消用戶下次登錄時須更改密碼,設置密碼永不過期:

2
將該用戶隸屬於GitUser組(如尚未生成改組,則先生成改組):

END
激活用戶

1
在Windows啟動程序組中,運行如下程序(C:\Program Files\ICW\bin\ copsshcp.exe):

2
進入COPSSH Control Panel應用對話框,正常情況下服務應該為正在運行(圖標為綠色,如為紅色,則可嘗試點選該按鈕,啟動該服務):

3
選擇Users頁面:

4
點選Add按鈕,出現如下導航對話框:

5
選擇Forward按鈕,出現如下頁面,選擇欲激活的用戶對應的域名及用戶名:

6
選擇Forward按鈕,進入如下頁面,選擇Linux shell and Sftp,所有選項選中:

7
選擇Forward按鈕,進入確認頁面,選擇Apply:

8
回到如下頁面,選擇Apply後,關閉。

END
公鑰文件上傳

1
從用戶處取得對應帳戶的公鑰文件authorized_keys,復制到C:\Program Files\ICW\home\ricky\.ssh目錄下(\ricky\是對應的用戶名);
2
Windows啟動程序組中運行Start a Unix BASH Shell(或Windows運行中運行命令:"C:\Program Files\ICW\bin\bash.exe" --login -i):

3
運行如下unix命令行,如運行未出錯,則完畢。

END
生成Git庫容器目錄

在伺服器硬碟上生成一個目錄,用來容納Git庫,比如生成E:\ GITTestRepo\目錄;
滑鼠右鍵點擊該目錄,選擇共享和安全…;
在彈出的該目錄屬性對話框的安全頁中加入用戶對應的組GitUser;
確認該用戶組許可權設置了允許修改、讀取和運行、列入文件夾目錄、讀取、寫入,選擇確定後完畢。
END
確認防火牆開放了22埠

確認伺服器的防火牆沒有禁止22埠的TCP/IP通信。
END
修改用戶登錄運行腳本

1
修改C:\Program Files\ICW\home\ricky\.bashrc文件(\ricky\是對應的用戶名),在文件最後加入如下行:

『叄』 如何在win7上安裝gitlab伺服器

GitLab是由Ruby語言開發的基於Linux的Git伺服器,是我見過的最強大的Git伺服器。發現它之後,立即決定將Git伺服器換成GitLab。
但安裝好GitLab之後面臨一個問題,如何將伺服器上的git項目直接導入到GitLab,之前的Git伺服器是由是git+apache搭建的(詳見在Linux上用Apache搭建Git伺服器)。
在網上發現了這篇文檔——Import bare repositories into your GitLab instance,並按之進行了操作。
1)設置存放代碼庫的主目錄
vi /etc/gitlab/gitlab.rb

比如這里設置為:git_data_dir "/gitlab/repos"
2)訪問剛搭建的GitLab站點,創建一個group,比如cnblogs。
這時會在 /gitlab/repos 下創建 /gitlab/repos/repositories/cnblogs 文件夾。
然後在/gitlab/repos/repositories/創建一個文件夾,比如cnblogs
3)將現有的所有git項目文件復制到這個文件夾
cp -r /data/git/* /gitlab/repos/repositories/cnblogs

4)修改一下復制過來的文件夾的所有者:
chown -R git:git /gitlab/repos/repositories/cnblogs

5)運行GitLab導入命令
cd /var/opt/gitlab
gitlab-rake gitlab:import:repos

等了一段時間之後,顯示done,卻一個項目也沒導入進來。
經研究發現,在導入時,GitLab只認文件夾名以.git結尾的項目。於是,將要導入的項目文件夾名稱加上.git後綴,再次進行導入。
結果顯示導入成功,比如:
Processing cnblogs/CNBlogsJob.git
* Created CNBlogsJob (cnblogs/CNBlogsJob.git)
Done!

可以是GitLab站點上卻看不到已導入的項目。多次努力,也沒能解決這個問題。
後來,實在沒辦法,改為手動導入,導入方法如下:
1)在GitLab站點上創建與要導入的項目同名的項目。
2)進入剛創建的項目文件夾
cd /gitlab/repos/repositories/cnblogs/項目名稱.git

3)刪除該文件下的所有文件
rm -rf *

4)將要導入的項目文件夾下的所有文件復制過來
cp -r /data/git/CNBlogsJob/* /gitlab/repos/repositories/cnblogs/CNBlogsJob.git

就這樣將項目一個一個地導入進來。
5)導入完成後,修改一下導入的所有項目的文件所有者
chown -R git:git /gitlab/repos/repositories/cnblogs

如果不修改所有者,客戶端無法進行git push。
就這樣手動地完成了現有Git項目的導入。
備註:操作系統是CentOS 6.2,GitLab版本是7.8.4。

『肆』 如何創建自己的私有git伺服器

通過以下的步驟,你將在伺服器上搭建並使用你自己的Git服務,例如myhost.example.com。其中的一些步驟,像email通知,限制用戶的許可權,特定分組的接入管理,都是依據你的要求和現實狀況的可選項。還有很多命令,你需要root許可權才能執行,所以別忘了用sudo,或者(最好不要)直接切換到root來執行。
為有讀寫許可權的用戶建立一個分組。根據你的操作系統,你可以用groupadd命令來實現,用vigr來編輯分組文件,或者直接編輯/etc/group文件。在最後,你會在/etc/group文件中看到如下一行
repogroup:*:10005:marry,john,violet
其中,repogroup是准許接入這個倉庫的組的名字。10005是一個獨一無二的分組識別數字,marry,john,violet則是獲准接入這個倉庫的用戶。
決定Git倉庫的路徑。它既可以放在你的home路徑下(e.g.
/home/yourname/gitroot),也可以放在一個專用的路徑下(e.g.
/var/gitroot).
配置許可權,讓Git用戶可以訪問這個目錄
chmod
g+rx
/path-to/gitroot
chown
:grouprepo
/path-to/gitroot
建立新的Git倉庫,叫做newrepo
cd
/path-to/gitroot
git
init
--bare
newrepo.git
建立路徑認證,以允許用戶組訪問,同時有針對性的設置Git
cd
newrepo.git
chown
-R
:grouprepo
.
git
config
core.sharedRepository
group
find
.
-type
d
-print0
|
xargs
-0
chmod
2770
find
.
-type
f
-print0
|
xargs
-0
chmod
g=u
設置提交(commit)的email通知(commit是一條命令),這樣當有新的修改提交到倉庫的時候,開發者們將會收到一封關於修改內容一覽的電子郵件。
echo
'One-line
project
description'
>description
git
config
--local
hooks.mailinglist
[email protected],[email protected],...
git
config
--local
hooks.emailprefix
'[DI-PR]
'
git
config
--local
hooks.showrev
"git
show
-C
%s;
echo"
git
config
--local
hooks.emailmaxlines
100
通過設置一個稱為鉤子(hook)的東東,來創建這些email通知。
cd
hooks
cp
post-receive.sample
post-receive
chmod
+x
post-receive
從post-receive的腳本中移除掉最後一行注釋的#字型大小,最後語句應該是這樣的
.
/path-to-hooks/post-receive-email
在你的庫中先放入一個文件(比如README)。為了避免其他用戶在第一次提交時遇到奇怪的錯誤信息時感到困惑,這是有必要的。
cd
to-your-personal-working-directory
git
clone
myhost.example.com:/path-to/gitroot/newrepo.git
echo
"Short
project
description"
>README.txt
git
add
README.txt
git
commit
-a
-m
"Add
README
file"
git
push
origin
master
#
第一次僅僅需要T"origin
master"
這個參數
為倉庫的其他用戶建立賬戶。依據你系統的不同,你可以通過useradd
或者adser來實現。
設置用戶可以通過公/私鑰配對來訪問。這包括以下幾步:
1)已經有公鑰的用戶,只需要把公鑰發給你就好。
2)沒有公鑰的用戶,必須用ssh-keygen命令來生成一個,然後把.ssh/id_rsa.pub發給你就可以了。
3)之後你必須在他們對應的賬戶下面建立這種公/私鑰配對。復制他的公鑰,然後順序執行下面的命令。
sudo
su
-
username
mkdir
-p
.ssh
cat
>>.ssh/authorized_keys
<<\EOF
paste-key-as-one-line
EOF
exit
改變用戶的賬戶讓他們使用受限的shell。如果你想讓你添加進來的用戶僅僅使用Git,而不是Unix的所有東西,那麼就設置他們的賬戶,讓他們只能使用Git。Git提供了這種專為這種需求設計的受限shell。它通常被安裝在
/usr/libexec/git-core/git-shell
or
/usr/local/libexec/git-core/git-shell。因此,對所有你想限制許可權的用戶,你可以執行以下命令。
sudo
chsh
-s
/usr/libexec/git-core/git-shell
username
告訴你的用戶,用下面的語句來克隆倉庫到本地。
git
clone
myhost.example.com:/path-to/gitroot/newrepo.git
到了這里,恭喜你,你成功了!

『伍』 搭建GitLab伺服器

GitLab是GitHub的免費私有庫替代方案,並且安裝與配置都很方便。

GitLab要求最少4GB內存,支持小團隊使用沒問題,實測2GB內存的VPS基本沒法用,開swapfile也不行,動不動就60秒超時。因此4GB內存是必須的。

關於這一點,內存大戶主要是Unicorn,基於ruby的http伺服器。Unicorn會在啟動後預先佔用大部分內存,內存會隨著使用逐漸增長,並且不會釋放。根據GitLab和Unicorn的官方文檔,這不是它們的鍋,那麼這個鍋可能是ruby和rails了。解決方法是unicorn-work-kill,會根據請求次數和內存佔用自動重啟Unicorn。Omnibus版的GitLab是默認開啟的。

GitLab分為社區版和企業版,在未付費的情況下,兩者的功能是一樣的。並且社區版整合了CI/CD,因此可以滿足絕大部分的開發需求。

安裝包主要包括Omnibus整合包,Docker、AWS等的雲鏡像,以及一些第三方維護的版本。其中Omnibus直接整合了所有服務端組件,適合自用和練手。

安裝以Omnibus整合包為例,操作系統為Ubuntu16.04。

Gitlab需要 curl,openSSH 和 ca-certificates 這幾個組件:

不過伺服器系統一般自帶,所以是可選的。

郵件服務,用於GitLab發送找回密碼的郵件:

不過如果伺服器沒有域名的話,大部分郵箱會拒收郵件,而管理員帳號可以直接重置其他賬號的密碼,所以是可選的。

官方提供的腳本:

這個腳本會自動添加源到apt 的source list,以及安全key。另外,如果自己伺服器在國內,腳本會自動添加清華的鏡像,速度還行。

先更新apt緩存

推薦使用 apt 而不是 apt-get ,前者大多數情況下更簡單一點。

然後是安裝:

其中 EXTERNAL_URL ,改成自己的域名。沒有域名的話,可以直接設置成IP的形式: http://1.2.3.4 ,這個推測跟nginx服務以及GitLab中的項目地址有關,所以最好正確設置。當然也可以之後在配置文件里更改。

安裝完成後,可以在配置文件中修改配置 /etc/gitlab/gitlab.rb 。

比如之前的 EXTERNAL_URL :

官方還有一個關於 unicorn 的優化建議:

默認值是2,如果伺服器只用於GitLab的話,官方建議是CPU核心數加一,可以提高伺服器的響應速度。不過如果內存只有4G,或者伺服器同時承載其他服務,就不要改了,以免內存不足。另外,這個參數最小值是2,設為1,伺服器可能會卡死。

配置完成後,刷新配置:

每次修改完 gitlab.rb ,都要刷新配置。

如果沒有報錯的話,GitLab就配置完畢並且正常運行了。接下來可以打開瀏覽器開始訪問了。

『陸』 怎麼在自己的伺服器上建立git倉庫

1.架設Git伺服器我們以Ubuntu為例。首先,在git伺服器上創建一個名為'git'的用戶,並為其創建一個.ssh目錄。並將其許可權設置為僅git用戶有讀寫許可權$sudoadsergit$sugit$cd$mkdir.ssh$chmod700.ssh接下來,把開發者的SSH公鑰添加到這個用戶的authorized_keys文件中。假設你通過電郵收到了幾個公鑰並存到了臨時文件里。重復一下,公鑰大致看起來是這個樣子:$cat/tmp/id_rsa.john.pubssh-/ww+/T17//5zytK6Ztg3RPKK+/nLF6JLtPofwFBlgc+AYYgPqdAv8JggJICUvax2T9va5gsg-keypair只要把它們逐個追加到authorized_keys文件尾部即可,同時將authorized_keys設置為僅git用戶有讀寫許可權。$cat/tmp/id_rsa.john.pub>>~/.ssh/authorized_keys$cat/tmp/id_rsa.josie.pub>>~/.ssh/authorized_keys$cat/tmp/id_rsa.jessica.pub>>~/.ssh/authorized_keys$chmod600~/.ssh/authorized_keys現在可以用--bare選項運行gitinit來建立一個裸倉庫,這會初始化一個不包含工作目錄的倉庫。$cd/opt/git$mkdirproject.git$cdproject.git$git--bareinit這時,Join,Josie或者Jessica就可以把它加為遠程倉庫,推送一個分支,從而把第一個版本的項目文件上傳到倉庫里了。值得注意的是,每次添加一個新項目都需要通過shell登入主機並創建一個裸倉庫目錄。我們不妨以gitserver作為git用戶及項目倉庫所在的主機名。如果在網路內部運行該主機,並在DNS中設定gitserver指向該主機,那麼以下這些命令都是可用的:#在John的電腦上$cdmyproject$gitinit$gitadd.$gitcommit-m'initialcommit'$gitremoteaddorigingit@gitserver:/opt/git/project.git$gitpushoriginmaster這樣,其他人的克隆和推送也一樣變得很簡單:$gitclonegit@gitserver:/opt/git/project.git$vimREADME$gitcommit-am'fixfortheREADMEfile'$gitpushoriginmaster用這個方法可以很快捷地為少數幾個開發者架設一個可讀寫的Git服務。作為一個額外的防範措施,你可以用Git自帶的git-shell工具限制git用戶的活動范圍。只要把它設為git用戶登入的shell,那麼該用戶就無法使用普通的bash或者csh什麼的shell程序。編輯/etc/passwd文件:$sudovim/etc/passwd在文件末尾,你應該能找到類似這樣的行:git:x:1000:1000::/home/git:/bin/sh把bin/sh改為/usr/bin/git-shell(或者用whichgit-shell查看它的實際安裝路徑)。該行修改後的樣子如下:git:x:1000:1000::/home/git:/usr/bin/git-shell現在git用戶只能用SSH連接來推送和獲取Git倉庫,而不能直接使用主機shell。嘗試普通SSH登錄的話,會看到下面這樣的拒絕信息:$sshgit@gitserverfatal:WhatdoyouthinkIam?Ashell?Connectiontogitserverclosed.這里提供的方法,組內所有成員對project都有讀寫許可權,也就是說每個分支都可以push代碼,如果需要更加細致的許可權控制,請使用Gitosis或者Gitolite。2.搭建Gitweb安裝gitweb之後就可以通過網站訪問我們的項目了。就像gitweb.conf#pathtogitprojects(.git)$projectroot="/opt/git";至此gitweb就可以使用了,現在可以通過config[core]repositoryformatversion=0filemode=truebare=true[hooks]mailinglist="[email protected],[email protected]"#收件人列表[email protected]#送件人地址emailprefix="[Projectcommit]"#郵件標題前綴showrev="gitshow-C%s;echo"#不只顯示有變化的文件,同時也顯示改變的內容為了使郵件顯示的更清楚,還要修改一下工程目錄當中的description文件,在description文件中,默認第一行是項目名稱,所以要在第一行填入該項目的名稱,這個在郵件中會有顯示。$vim/opt/git/project.git/descriptionProject_A

『柒』 搭建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就是這個工具。

熱點內容
網站搭建伺服器搭建 發布:2025-03-16 10:33:27 瀏覽:795
游戲目錄在哪裡安卓 發布:2025-03-16 10:33:19 瀏覽:467
婉兒腳本 發布:2025-03-16 10:19:33 瀏覽:580
c語言ftp下載文件 發布:2025-03-16 10:05:02 瀏覽:307
手機帳戶密碼怎麼找回密碼 發布:2025-03-16 10:02:10 瀏覽:706
c語言位段的使用 發布:2025-03-16 10:00:38 瀏覽:572
象山編程 發布:2025-03-16 09:38:41 瀏覽:927
綠點掌知識薪資密碼是多少 發布:2025-03-16 09:37:05 瀏覽:597
osu安卓版怎麼 發布:2025-03-16 09:37:05 瀏覽:153
python編程編程第三版 發布:2025-03-16 09:29:56 瀏覽:968