Gitでサーバーのリポを更新しよう

準備するもの

・Ubuntuサーバー

・root権限

今日の課題

Gitは世界のどこのデベロッパーでも使っておきたいバージョンコントロールシステムのことです。

Gitを使ってコードをブランチに分けたり、前のバージョンに戻ったりできるプログラマーの親友です。

今日はGitを使ってサーバーに上げたリポジトリを更新する作業を行います。

サーバーにSSH接続

まずはサーバーにSSH接続しましょう。

私のお気に入りのSSHクライアントはmobaXtermです。他に自分で使っているのがあればそれで構いません。

では、サーバーには入れたらgitをインストールしましょう。

sudo apt install git-all

y/nで聞かれたらyesのy、でエンター。

ではgitをinit(イニシャライズ)したいファイルパスに行き、下記のコマンドを実行します。

.git前の名前は何でもいいです。

git init --bare github-hook.git

post-receive Hookを追加

Initした後に作成されたファイルを見てみましょう。

ではこの中のhooksに移動します。

ここではpost-receiveファイルを作成します。

nano post-receive
git --work-tree=/home/djangoboy/backendAPI/ --git-dir=/home/github-hook.git/ checkout -f

git –work-tree=/pushしたいディレクトリ/ –git-dir=/Gitの場所/ checkout -f

post-receiveを実行ファイルにする

さっき作成したpost-receieveファイルをexcecutableのファイルにします。

これがないとうまくいきません。

chmod +x post-receive

権限をみたい場合は
ls -all

ローカルサーバーでpushの行先を設定

git remote のコマンドでどこにpushするか教えてあげます。

これでローカルのPCで更新したコードをサーバーにpushできるようにします。

git remote add live ssh://root@104.248.231.241/var/repo/myproject.git

例2:git remote add live ssh://root@172.104.81.42/home/dan/ticketapi/github-hook.git

Liveの部分は名称なのでdeoployとかprod(プロダクションの略)とかに変えてもOKです。

でsshの次にサーバーのIPから、pushするパスまでを書きます。

git remote add live ssh://root@172.105.192.111/home/github-hook.git

Push!

git push live master

git push live

おまけ

現在の接続先をみたい場合

git remote -v