ホーム > Git

Git アーカイブ

ホームディレクトリをGitで簡単に管理するための.gitignore活用法

git_home.jpg

さて、まったくブログを更新していないtfmagicianです。
こんにちは。
先月は1記事しか書いてないですね。今年は月10記事以上を目標に、楽しみながら書いていきます。

今日は、Gitをネタに取り上げます
前回はプロジェクトに関するGitネタでしたが、今回は個人的なモノ

あなたの宝物が詰まったホームディレクトリをGitで管理してみます。

ホームディレクトリの”なに”を管理するか

これは人によって異なります。

例えば、あなたがMac使いで、Mac上でGitを使うというなら、ドキュメントも管理したくなるかもしれない。
例えば、あたながLinux使いなら、設定ファイルだけGitで管理出来れば良いかもしれない。

.gitignoreをうまく設定出来れば、どちらのパターンも対応出来ます。

ただ、.gitignoreを設定する前に、自分が”なに”を管理したいかは決めておきましょう。
でないと、大変なことになります。

.gitignoreとは

Gitを使ったことがある人であれば、.gitignoreはお馴染みです。
その名のとおり、”Gitに無視させるファイル“を指定できる設定ファイルです。

試しに、.gitignoreを作ってみます。

$ mkdir ignore_test
$ cd ignore_test
$ git init
$ touch first_file
$ git commit -a
$ touch .gitignore

リポジトリを初期化したら、.gitignoreファイルを作ります。
中身は以下の通りに記述してください。

/tmp

この.gitignoreもGitリポジトリが管理してくれます。
.gitignoreもコミットしておきます。

$ git add .gitignore

続けて、以下のコマンドを打ってください。

$ mkdir tmp
$ git status

Gitの管理対象から、tmpディレクトリが除かれています。
(変更されたファイル一覧にtmpディレクトリがないはずです。)

このように、普通はリポジトリには含めたくないファイルを.gitignoreで指定します。

ホームディレクトリに.gitignoreを置く

さて、初心者向けの説明だったので、知っている人は飽き飽きしてきたと思います。
そんな人のために、早速、私のホームディレクトリに置いてある.gitignoreを晒します。

# 全てのファイルを一度、無視する。
/*
# さらに、ドットから始まる設定ファイルを無視する。
/.*

# しかし、"無視したくないファイル"は以下に"![ファイル名]"で指定する。
##### Gitで管理するファイルリスト #####
!/.bash_aliases
!/.bash_colour.example
!/.bash_profile
!/.bashrc
!/.selected_editor
!/.vimrc
!/.vim
!/.gitignore
!/.gitconfig
!/.gitmodules
!/bin

# 上記に"無視したくないファイル"としてリスト化した中から、さらに"無視したいファイル"を指定する。
/.vim/.netrwhist

勘の良い人はわかると思います。
ここで重要なのは”/*“と”/.*“、それに”エクスクラメーションマーク(!)“です。
行の先頭にエクスクラメーションマークを書くと、”無視したくないファイル“を示せるんです。

この書き方をすることで、ごった返したホームディレクトリから自分の指定したファイルだけ、Gitに管理させることが出来ます
新しく管理したいファイルを追加したい場合は、”Gitで管理するファイルリスト“以下にファイル名を追加すればOKです。
それで、Gitがファイルを追跡するようになります。

ホームディレクトリの管理に役立つ.gitignoreの設定

.gitignoreは、複雑な設定が出来ません
基本的な設定は以下の通りです。

# 全てのtmpディレクトリを無視する。
tmp/

# トップレベルのtmpディレクトリのみ無視する。
/tmp

# 全てのphpファイルを無視する。
*.php

# 全てのtmpディレクトリのphpファイルのみ無視する。
tmp/*.php

# トップレベルのtmpディレクトリのphpファイルのみ無視する。
/tmp/*.php

これに先程のエクスクラメーションマーク(!)を使えば、特定の拡張子のファイルや特定のディレクトリのみ管理できます。

トップディレクトリに置く.gitignoreだけでは、この程度しか設定出来ません。
しかし、.gitignoreはサブディレクトリに置くことも出来ます。

$ cd ~/
$ cat .gitignore
# documentsディレクトリのみ、Gitで管理する。
/*
/.*
!/documents
$ cd ~/documents
$ cat .gitignore
# documentsディレクトリの中の全ての.DS_Storeファイルを無視する。
.DS_Store

これで、”documentsディレクトリはGit管理するが、その中の.DS_Storeは無視する“という設定が出来ました。

.gitignoreは、なかなか扱いにくい子です。
しかし、うまく使って自分のホームディレクトリを効率的に管理しましょう。

参考ページとプロジェクト

ホームディレクトリをGitで管理するために、以下のページが参考になります。

また、私は使っていませんが、こんなプロジェクトもあるようです。

こんなことを考えるのは、私だけではないんですね。

皆さんもGitでホームディレクトリを管理してみてください。
Gitで管理すると、サーバ間の設定共有も楽々です。
ちなみに、私の設定ファイルはgithubに載せてありますよ。

ホーム > Git

スポンサードリンク
書いている人
つぶやき
RSS 気になるニュース
過去の記事

ページの上部に戻る