Linux で Git サーバーを構築する

ご存知のとおり、開発環境ではバージョン管理が不可欠ですが、コードは GitHub で無料でホストできます。プロジェクトのソース コードを公開するつもりがなく、会社が費用を払いたくない場合は、その後、自分で Git を構築し、サーバーは Gitosis を使用して公開鍵を管理できるため、より便利です。

ビルド環境:

サーバー CentOS 6.6 + git (バージョン 1.8.3.1)

クライアント Windows10 + git (バージョン 2.11.1.windows.1)

1.Git関連ソフトウェアをインストールする

Linuxはサーバー システム、Windows はクライアント システム、Git は個別にインストールされます

サーバーをインストールします。

[root@linuxprobe ~]# yum install -y git 
[root@localhost ~]# git --version //インストール後、Git バージョンを確認します
git version 1.8.3.1

クライアントをインストールします。

Git for Windowsをダウンロード 、アドレス: Git for Windows

インストールすると、Git Bash をコマンドライン クライアントとして使用できるようになります。

$ git --version 
git version 2.11.1.windows.1 //インストール後、Git バージョンを確認します

Gitosis をインストールする

[root@linuxprobe ~]# cd software/ 
[root@linuxprobe software]# git clone https://github.com/res0nat0r/gitosis.git 
[root@linuxprobe software]# yum install python-setuptools -y 
[root@linuxprobeソフトウェア]# cd gitosis 
[root@linuxprobe gitosis]# sudo python setup.py install

インストールが成功したことを示す次のメッセージが表示されます

/usr/lib/python2.6/site-packages の使用
 gitosis==0.2 の依存関係の処理が完了しました

2. Git サービスを管理するためにサーバー側で git ユーザーを作成します。

[root@linuxprobe ~]# id git //git ユーザーが存在するかどうかを確認します
id: git: no such user 
[root@linuxprobe ~]# useradd git 
[root@linuxprobe ~]# echo "123" | passwd --stdin git 
[ root@linuxprobe ~]# su - git // git ユーザーに切り替える

3. 公開キーを設定する

Windows でマネージャーを構成します。Git サーバーにはいくつかのマネージャーが必要です。開発者マシンの公開キーをサーバーにアップロードし、それを Git サーバーのマネージャーとして追加し、git コマンド ラインを開きます

$ ssh-keygen -t rsa //常に入力、パスワードを設定する必要はありません
~ scp ~/.ssh/id_rsa.pub [email protected]:~ // git サーバーにコピーします

4. gitosis の設定

git ユーザーを使用して gitosis を初期化する

[root@linuxprobe ~]# cd .ssh 
[root@linuxprobe ~]# gitosis-init < ./id_rsa.pub 
/home/git/repositories/gitosis-admin.git/ にある空の Git リポジトリを初期化しました / に
ある既存の Git リポジトリを再初期化しましたhome/git/repositories/gitosis-admin.git/ 
[root@linuxprobe ~]# chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update // 追加权制限

Windows マシン上のマネージャー ホストに gitosis-admin のクローンを作成します。

$ git clone ssh://[email protected]:22/gitosis-admin.git 
$ cd gitosis-admin 
$ ls 
$ gitosis.conf keydir

gitosis.conf: git サーバー設定ファイル

keydir: クライアントの公開鍵を保存します。

gitosis.confファイルを構成する

$ vim gitosis.conf 
[gitosis] 

[group gitosis-admin] #グループ名
members = yueyong@SHA2-001 #グループ メンバー
書き込み可能 = gitosis-admin #プロジェクト名

[group test] //「test」プロジェクト グループがここに追加されます, git サーバーにアップロード
members = yueyong@SHA2-001 
writable = test

Windows マネージャー マシン上にローカル テスト ウェアハウスを作成し、git サーバーにアップロードします。

$ git config --global user.name "Your Name" //最初の送信では、個人情報、ユーザー名、電子メールを設定する必要があります
$ git config --global user.email "[email protected]" 
$ cd ~/repo 
$ mkdir test 
$ git init 
$ tocuh readme.txt

リモートサーバーに送信する

$ git add . 
$ git commit -a -m 'init test' 
$ git remote add repo [email protected]:test.git //リポジトリ リモート ライブラリの名前 (任意の名前に置き換えることができます) 
$ git Push repo master //すべてのローカル ブランチ コードをリモートの対応するブランチにアップロードします

サーバーはテストウェアハウスを自動的に作成します

[git@repositories]# pwd 
/home/git/repositories 
[git@linuxprobe リポジトリ]$ ls 
gitosis-admin.git test.git

5. 他の git ユーザー開発者を追加する

会社の開発チームの数が増加しているため、開発者の秘密キーを /home/git/.ssh/authorized_keys に手動で追加するのは面倒です。上記の Windows マシンの管理者は、他の開発者の秘密キー id_rsa.pub ファイルを収集します。をアップロードし、サーバー上で構成が完了すると、ユーザーはプロジェクト権限を取得し、リモート ウェアハウスからプロジェクトをプルおよびプッシュして共同開発プロジェクトを実現できます。

$ cd ~/gitosis-admin/keydir 
$ mv ~/id_rsa.pub [email protected] //公開鍵を hostname.pub に変更
$ vim gitosis.conf 
  [グループテスト] 
  writable = test 
  members = yueyong@SHA2 -001 zhangsan@SHA2-002 //メンバーを追加
$ git add 。
$ git commit -m "zhangsan@SHA2-002 pub を追加し、gitosis.conf を更新" 
$ git Push リポジトリ マスター

プッシュが完了すると、新しく追加された開発者はプロジェクトを開発でき、この方法で後続の人員を追加でき、開発者はウェアハウスを直接複製できます。

git clone [email protected]:/home/git/repositories/test.git が
エラー問題を報告しました: ERROR: gitosisserve main repository read access unavailable
このエラーレポートによると、キーに問題がないことがわかります。調査した結果、そうではないはずであることがわかりました。この /home/git/repositories/test.git が完全に書かれており、
git clone [email protected]:test.git
これで大丈夫です。

 

おすすめ

転載: blog.csdn.net/yaxuan88521/article/details/131371397