ubuntuはカスタムgitを構築し、パスワードを免除する方法

2021 ワード

システムバージョン:14.04(新装純版)gitバージョン:1.9.1
ステップ1:gitのインストール
sudo apt-get install git

ステップ2:gitユーザーと権限の追加
//     git  ,    、         
- sudo adduser git
- id git           //         
- useradd git -g  git -d /home/git     -g      , -d       ;    

gitユーザーが属するディレクトリの下で作成された/home/gitディレクトリの下で.sshディレクトリを作成し、実行します.
- chmod 700 -R .ssh
- chown -R git:git git

ステップ3:shellログインを無効にする
/etc/passwdファイルを編集し、内容を
it:x:1000:1000:,,,:/home/git:/bin/bash

変更後:
it:x:1000:1000:,,,:/home/git:/usr/bin/git-shell

ステップ4:裸倉庫の追加
sudo git init --bare sample.git

裸倉庫にはワークスペースがありません.サーバー上のGit倉庫は純粋に共有のためなので、ユーザーに直接サーバーにログインしてワークスペースを変更させません.倉庫の帰属を変えるには
sudo chown -R git:git sample.git

ステップ5:証明書の秘密保護操作の作成
ログインする必要があるすべてのユーザーの公開鍵を収集するのは、彼ら自身のidです.rsa.pubファイル、すべての公開鍵を/home/git/.ssh/authorized_にインポートkeysファイルには、1行1つ.
ファイルがない場合は、自分で作成します.
ステップ6:サーバ・ウェアハウスのクローン作成
git clone git@ip:/git/sample.git

手順5がない場合はgitユーザーパスワードの入力を求められます
その他:
サービスウェアハウスhooksディレクトリの下にファイルpost-receive(存在しない場合は新規)を作成します.内容は次のとおりです.
#!/bin/sh
unset  GIT_DIR
DeployPath=/var/www/html/

cd $DeployPath

echo '====auto update start====='
git init
git remote add origin /home/git/testh5.git
git clean -df
git pull origin master

echo '====auto update end====='

二、分岐操作
//      
git branch -D br   

//             
git push origin br   

//       
git push origin :br  (origin      )

問題にぶつかる
一、git cloneが間違っている
fatal: Could not read from remote repository.

idかもしれないrsa_.pubの公開鍵がサービスと一致しない、あるいはサーバがリセットされた場合.この場合id_を再更新する必要がありますrsa.pub
二、hooksが間違っている
//      
remote: error: insufficient permission for adding an object to repository database ./objects

推奨される倉庫ディレクトリの編集権限は777です.