技術関連の覚書

案件でやったり自宅で試したことの覚書

Git

Gitのインストール

Redhat

yum -y install git

Debian

apt-get install git

サーバ用途としてのリポジトリの作成(共有リポジトリ)

Gitは分散型のファイル管理のため各マシンにリポジトリと実際に編集を行うファイルが存在するが、サーバ用途で使用する場合はリポジトリ飲みが存在することになる。 この様なリポジトリを ベアリポジトリ と呼ぶ。

ベアリポジトリへアクセスするためのグループの作成 複数ユーザに対して設定する場合はグループを設定してユーザをグループに所属させて運用する

# groupadd Gitにアクセスするグループ

ベアリポジトリへアクセスするためのユーザの作成

# useradd -g Gitにアクセスするグループ ユーザ

作成したユーザのパスワードを設定する

# passwd ユーザ

ベアリポジトリを作成するディレクトリの作成 慣例的に末尾を.gitにする

# mkdir -p リポジトリ用ディレクトリ.git

ベアリポジトリの作成 gitアクセスユーザにsuする

# su - ユーザ

$ cd リポジトリ用ディレクトリ.git

ベアリポジトリの作成

–bare ベアリポジトリの作成 –shared ベアリポジトリの作成を行ったユーザが所属するグループに対して書き込み権限を付与する

$ git init --bare --shared

ベアリポジトリへの接続方法

Gitサーバへアクセスするプロトコルはgit、http、httpssshがある。 そのうち、読み書きのできるプロトコルsshとなる。 sshへの接続法法は、sshへアクセスできるユーザを作成してそのユーザで認証する方式と、ssh公開鍵を利用して接続する方法がある。

sshでの接続方法

git clone ssh://サーバ:[ポート]/リポジトリパス.git

GitLabのインストール

事前準備

httpdの停止

systemctl stop httpd.service
systemctl disable.httpd.service

https://about.gitlab.comからダウンロード このページをブラウザで開き、OSを選択して書かれているとおりにコンソールへコピペするとインストールができます。

Gitを使ったファイル管理

Gitの特徴である分散型ファイル管理の方法では必ず競合の問題が関わってくるが、それを克服すれば中央管理型のファイル管理よりも高速で、ローカル内でエラーを気にすることなく管理することができるツールとなる。

中央管理型(SVNなど)でリモートリポジトリとローカルリポジトリを作成して管理する場合、それぞれのリポジトリは別のものであり、それをマージすることは困難(そもそも別リポジトリでのマージはサポートされていないので不可能と言ってもいい)になるが、 分散管理型の場合、リモートとローカルとの同期(プル、プッシュ)やブランチ間のマージ機能が強化されているため通常はmasterをマージしてからコミットすればほとんど競合を起こすことなくマージリクエストを出すことが可能となります。

Gitを使った管理方法

テスト時に接続するDBの設定が違う場合に設定ファイルを書き直さなければならなかったり、状況に応じて設定を変えたい場合などは、ローカルのみでブランチを作成してそこでファイルを管理して、チェックアウト後や一時的にリモートに合わせてコミットしたファイルを戻すときに楽になります

マージ

ローカルリポジトリとリモートリポジトリが分かれているためGitえかマージ作業が必要不可欠です。 ローカルで管理しているリポジトリとリモートリポジトリとの同期をとる作業がプルやプッシュ、ブランチとマスターとの同期をとる作業がマージとなります。

Gitの基本的な運用はmasterを主としてファイルを管理し、それぞれの担当者がブランチを作成して、 それをローカルリポジトリで管理しながら作成後にmasterへのマージリクエストを出してリリースします。 まずはプルしてリモートのブランチと同期をとり、そのあとmasterとマージしておけばマージリクエストでの競合を防ぐことが出来ます。