マグカップの裏

プログラムとか、思ったこととか、料理とか

今さらGitを真面目に考えてみる

今更Git

なんで今更Gitなのかというと、自身が書いているプログラムのバージョン管理がしたかったからです。
でもGitについて詳しく解説してる書物はたくさんあるけど、結局どうすればいいの?というのがいまいちつかめず…。
そのせいで今までよくわからないまま過ごしてきました。 いっぱいある記事や書籍に翻弄されて、結局何をすればいいのかわからないしわかったとしても それが続かない。

Gitのインストールからやらないとな、とGitのインストールの仕方を検索しますよね。 使い方って結局わからないんですよ。 使い方調べるじゃないですか、なんか微妙に構成違ってどれがどれかわかんないんですよ。 構成関係ないとしてもコミットの仕方とかプッシュの仕方は書いてあってもバージョン戻すにはどうすればいいか書いてないんですよ。 結局色々な文書を読みながら自分の脳みそに使い方を叩き込むしか道がない。

しょうがないのでまとめることにしました、たぶん一つのページには収まらないかな。

簡単な説明

リポジトリについて

Gitでは管理体系としてリポジトリと呼ばれるものを使っている。 リポジトリが何かというと、ファイルやディレクトリの状態を記録する場所のことでここに記録された"状態"は内容の変更履歴として格納される。 Gitサーバの管理するリポジトリは編集対象のファイルの実態は持っておらず、管理情報のみを持つ仕組みになっている。
この場合に使用されるリポジトリが「ベアリポジトリ

インストール

まずはインストールです。

環境

  • OS:CentOS7
  • RAM:1GBのConohaVPS

安上がりですねえ。最近raspberryPI買った方が安いんじゃないかと思いだしたけど。

導入手順

# yum install git

インストールはこれだけ。

ベアリポジトリ用の設定

ベアリポジトリへのアクセスを行うユーザとグループを作ってあげます。

#groupadd git
#useradd -g git git
#passwd git

名前は好きに決めていいです。パスワードも。

次にベアリポジトリ格納用ディレクトリの作成。先ほどのユーザに読み書きの権限を与える。

#mkdir -p /var/git/repo.git
#chown -R git /var/git

別に名前に制限はないです。

ベアリポジトリの作成

ベアリポジトリを作ります。たぶんGit入門した人なら一度は使ったことあるであろうコマンド。

#su - git
$cd /var/git/repo.git
$git init --bare --shared

上記のgitコマンドにつけたオプションは簡単に説明すると下記のような感じ。
- --bare:ベアリポジトリの作成 - --shared:ベアリポジトリを作成したユーザが所属するグループに対して読み書きの権限を与える

ユーザ設定

先に作成したgitユーザを共有するなら必要ないですが、各自が別のアカウントを使う方が好ましいです。 なのでこのような設定を。

$su
#usermod -G wheel,git username
#chown -R root:git /var/git/repo.git

gitグループにユーザを追加してやります。wheelってんは既に属しているグループのはず。

以上でサーバサイドはおしまい。次はクライアントサイド。

クライアント側

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

ソースコードの置かれてるフォルダ内にリポジトリを作るのですが今回はテストファイルも作ります。

$cd ~/tmp
$mkdir test
$cd test
$echo "TEST FILE" > test.txt

ローカルリポジトリを作成します。リポジトリはあくまでも変更履歴としてファイルなどの状態を補完するためのものなので これ自体にファイルは入れない。作業しているフォルダのあるところに移動して下記を実行する。

$git init

これでローカルリポジトリができたはず。

とりあえず構成はこれでできたので次は実際の使い方。