hidemium's blog

日々学んだことをアウトプットする。

Gitのインストールと初期設定

バージョン管理を行うため、CentOS6.5にGitをインストールしてみました。

インストール

公式サイトにある手順を参考にGitをインストールします。
最新版のGitを使用する場合は、ソースからのインストールしますが、今回はyumからインストールしました。

$ yum -y install git

初期設定

ユーザの登録

まずは、Gitのユーザ名とメールアドレスを登録します。
「--global」オプションを付けることで、「~/.gitconfig」に情報が格納されます。

$ git config --global user.name <ユーザ名>
$ git config --global user.email <メールアドレス>
$ git config --list

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

リモートリポジトリを作成します。
リモートリポジトリへのアクセスは、一旦Localプロトコルで行います。
他サーバから接続する場合は、SSHプロトコルやGitプロトコルが使えます。SSHプロトコルを使う場合は、SSH認証の設定が必要となります。

$ mkdir /var/lib/git
$ mkdir /var/lib/git/project.git
$ cd /var/lib/git/project.git
$ git --bare init

ローカルリポジトリの作成

管理対象のディレクトリに移動し、リポジトリの初期化を行い、ローカルリポジトリを作成します。

$ mkdir local
$ cd local
$ git init
$ echo test > test #テスト用のファイルです
$ git add .
$ git commit -m "first commit"

リモートリポジトリには何も入っていないため、ローカルリポジトリの内容を追加します。※Localプロトコルでアクセスしています。

$ git remote add origin /var/lib/git/project.git
$ git push origin master

初期設定は以上となります。

Gitの簡単な使い方として、ファイルの編集→add→commit→pushを繰り返し行っていくことになります。
Gitの使い方については、まだ分からない点があり、整理ができたところで記事にしたいと思っています。

GitWebのインストール

インストール

Gitはコマンドベースのツールのため、リポジトリがどのような状態になっているか分かりにくいときがあります。
そこで、Gitのリモートリポジトリをブラウザで見れるように、GitWebをインストールします。
apacheも必要であるため、合わせてインストールします。

$ yum -y install httpd
$ yum -y install gitweb

/etc/gitweb.confファイルにリモートリポジトリのパスを指定します。

$ vi /etc/gitweb.conf
#our $projectroot = "/var/lib/git";
our $projectroot = "/var/lib/git"; ←コメントアウトを外して、リモートリポジトリのパスを指定

apache自動起動の設定とサービスを起動します。

$ chkconfig httpd on
$ service httpd start

apacheのデフォルトポートは80なので、ファイアウォールの設定によりポート80が使えるように開放します。

$ vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT ←追加します
$ service iptables restart

また、SELinuxが動作していると、「404 - No projects found 」と表示されGitの情報が見れない場合があります。以下のファイルを修正し、SELinuxを無効化します。

$ vi/etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled

サーバを再起動すると設定が反映されます。

デザインの変更

GitWebのデザインをGitHub風に変更するテーマが公開されてるので適用します。
(見た目は大事です)

$ cd /usr/local/src/
$ git clone https://github.com/kogakure/gitweb-theme.git
$ cd gitweb-theme/
$ \cp -rf ./* /var/www/git

※\cpはcp -iのエイリアスを無効にして、上書き確認を無効にしています。