Gitサーバー

Git

sudo apt-get install git
mkdir git
cd git
git init --bare --shared blog.git
sudo mkdir /var/www/html/git
sudo chown -R www-data:www-data /var/www/html/git

Nginx

sudo apt-get update
sudo apt-get install nginx nano fcgiwrap apache2-utils -y

/etc/nginx/sites-available/default を編集する。

location ~ /git(/.*) で /var/www/html/git以下にマッチさせる。


server {
        listen 80 default_server;
        listen [::]:80 default_server;


        root /var/www/html/blog;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

location ~ /git(/.*) {
    root /var/www/html;
    client_max_body_size 0; # Git pushes can be massive, just to make sure nginx doesn't suddenly cut the connection add this.
    auth_basic "Git Login"; # Whatever text will do.
    auth_basic_user_file "/var/www/html/git/htpasswd";
    include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
    fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT /var/www/html/git; # /var/www/git is the location of all of your git repositories.
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; # Takes the capture group from our location directive and gives git that.
    fastcgi_pass  unix:/var/run/fcgiwrap.socket; # Pass the request to fastcgi
}

}


設定ファイルの正当性チェック、再起動

sudo nginx -t
sudo systemctl restart nginx

ユーザー追加

ここではユーザー Tomoを追加します。 コマンドを入力するとパスワードの設定を求められます。

sudo htpasswd -c /var/www/html/git/htpasswd Tomo

レポジトリ作成

ここではblogレポジトリを作成します

cd /var/www/html/git
sudo mkdir blog.git
sudo cd blog.git
sudo git --bare init
sudo git update-server-info
sudo chown -R www-data.www-data .
sudo chmod -R 755 .

ファイアウォール

sudo ufw enable
sudo ufw allow http
sudo ufw allow ssh

Nginx

ps aux | grep [n]ginx | awk ‘{ print “kill -9”, $2 }’ sudo kill -9 sudo lsof -t -i:80 sudo systemctl restart nginx

Clone

cd /var/www/html git clone ./git/blog.git

リモートからアクセスする場合は:

git clone http://Tomo@142.11.211.91/git/blog.git

コミットテスト

git add . git commit -m “test commit” git push origin master

ハードリセット

git reset –hard origin/master

プロキシ

.gitconfigに追加

[http] proxy = http://127.0.0.1:50174 [https] proxy = http://127.0.0.1:50174

前へ
次へ