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