SourceTree + Gitでプロジェクト管理

広告

前置き


既存のプロジェクトをgitでver管理をしようと思いました。
そこで、以下の流れを作っていきます。
①SourceTreeでプッシュ
②リモートリポジトリから公開dir(/var/www/html/プロジェクト)に更新をかける
③プッシュした内容が確認できること

要はプッシュされたら公開dirにも更新をかけたい!!

gitのバージョン


gitは最新のバージョンになってることを推奨します。
以下の記事も参考にしてください。
https://tamomoru.com/dev_blog/article/14

リモートリポジトリ


リモートリポジトリの作成


# cd /var/www/git
# mkdir プロジェクト名.git
# cd プロジェクト名.git

リモートリポジトリの初期化


# git --bare init --shared

以下のようにファイルが生成されていたら成功です。
# ls -l
total 16
-rw-rw-r-- 1 root root 23 Sep 25 01:02 HEAD
drwxrwsr-x 2 root root 6 Sep 25 01:02 branches
-rw-rw-r-- 1 root root 126 Sep 25 01:02 config
-rw-rw-r-- 1 root root 73 Sep 25 01:02 description
drwxrwsr-x 2 root root 4096 Sep 25 01:02 hooks
drwxrwsr-x 2 root root 20 Sep 25 01:02 info
drwxrwsr-x 4 root root 28 Sep 25 01:02 objects
drwxrwsr-x 4 root root 29 Sep 25 01:02 refs


ローカルリポジトリ


リモートリポジトリをクローン


作成したリモートリポジトリをクローンしてローカルリポジトリを作成します。
SourceTreeのヘッダメニュー「ファイル」⇒「新規/クローンを作成する」を選択すると以下の画面が出てきます。
リモートリポジトリと、クローンするローカルのdirを指定してクローンしましょう。



sshプロトコルでリポジトリにアクセスするためのURLフォーマットは以下になります。
ssh://ユーザ名@ホスト名:/リポジトリPATH

既存プロジェクトのプッシュ


クローンしてできたローカルレポジトリに既存プロジェクトを置きましょう
そうするとSouceTreeで差分が上がるのでこれをコミット⇒プッシュします。

SourceTree操作


プッシュするまでの操作が分からない人のための補足。
SourceTreeeでローカルの変更をリモートリポジトリに反映するためにはコミット⇒プッシュの手順をたどります。
分かる人はスルーしてください。

ローカルリポジトリに変更を加える


クローンしたローカルリポジトリに適当なファイルを置いて変更を加えてみましょう。
画像はローカルリポジトリにtest.txtファイルを新規に作成しました。



そうすると、以下のようにSourceTreeの画面に変更が反映されます。



コミット


これをコミットするために、コミットするためにコメントを記述して、インデックスに追加します。



インデックスにステージするとコミットできるようになりますのでコミットしましょう。



プッシュ


コミットされると対象件数が表示されますのこれをプッシュしてリモートリポジトリに反映させましょう。



以上がSourceTreeでローカルの変更をリモートリポジトリに反映させる流れです。


公開dirとの疎通


プッシュのタイミングで、公開dirに更新(プル)がかかるようにします。

公開dirにクローンを作成


リモートリポジトリの内容を公開dirにクローンする
# cd /var/www/html
# git clone /var/www/git/プロジェクト名.git

フックを作成


プッシュされたらクローンに反映させるためにフックを作成します。
post-receiveを作成します。
# vi /var/www/git/プロジェクト名.git/hooks/post-receive

>/var/www/git/プロジェクト名.git/hooks/post-receiveの中身を以下にして保存してください

#!/bin/sh
cd /var/www/html/プロジェクト名/
git --git-dir=.git pull

フックに実行権限を付与


# sudo chmod +x /var/www/git/プロジェクト名.git/hooks/post-receive

必要に応じて実行権限や書き込み権限を調整する


構成によってこれをしないとフックが反映されないことがあります。
要はプッシュするユーザーが、gitとhtml両方のディレクトへの書き込み権限を持つようにすること。
# sudo chown ユーザ:グループ -R /var/www/git/プロジェクト名.git
# sudo chown ユーザ:グループ -R /var/www/html/プロジェクト名


確認


なにかローカルリポジトリに変更を加えてプッシュしてみましょう。
内容が反映されていれば成功です!

参考


https://qiita.com/laineus/items/d61e004545ef0ef0b004
広告


おススメコンテンツ


この記事を読んだ人におススメな記事
Centos7 最新Gitインストール

Centos7 最新Gitインストール

Git 2018-09-24
Git post-receive プルされない

Git post-receive プルされない

Git 2018-09-30
Git  .gitignoreでファイルの更新を監視しないようにする

Git  .gitignoreでファイルの更新を監視しないようにする

Git 2018-09-30

Profile