パンジェンシーの「汗だく開発日誌」

システム開発の備忘録です。

【Ubuntu】Git Colaでバージョン管理

いつもブログをご覧いただき、ありがとうございます!

パンジェンシーです!

f:id:x-fieldatts:20150508114016p:plain

 

さて、今回はソースコードのバージョン管理について、書きたいと思います。
一昔前までは、バージョン管理には、Subversionというシステムを使っていましたが、最近は、Gitが主流なようなので、そちらを使い始めています。 ====

環境

 

参考ページ

今回、参考にさせていただいたページは以下です。

gihyo.jp

 

  • バージョン管理しない無視リストの作成方法が紹介されています。

www.omakase.org

 

Git Colaのインストール

今回は、参考ページでオススメされていた「git-cola」をインストールすることにしました。

$ sudo apt-get install git-cola

Git Colaの起動

インストールが終わったら、DASHホームの検索窓から「git」を検索します。「Git Cola」が表示されるので、クリックしましょう。


「Git DAG」というのも表示されますが、そちらはコミットログブラウザで、Git Colaのメニューから起動できます。

Git Colaの使い方 [2015/12/6:追記]

私の環境では、「Git Cola」リポジトリの新規作成が機能していないようだったので、リポジトリの新規作成だけGit公式のGUIツールを使いました。

Git GUIツールのインストール

$ sudo apt-get install git-gui

Git GUIツールの起動

$ git gui

Git GUIツールの使い方

「新しいリポジトリを作る」を選択し、Git管理したいディレクトリを選択します。

作成すると、「Git Cola」の方でも、「開く」からリポジトリを選択すれば確認できるようになります。

コミットする前に、プロジェクトのディレクトリに「.gitignore」を作成して、無視リストを作成しておくとよいと思います。

無視リストの作成

Gitでは、ブロジェクトにあるけどバージョン管理しないファイルを、「.gitignore」というファイルに記載しておきます。そうすると、GUIツールで、未コミットのファイル一覧に該当ファイルが表示されなくなるので、管理がしやすくなります。


管理対象となるディレクトリ内に、.gitignoreファイルを作成しましょう。

$ gedit .gitignore


例えば、node.jsで作成するWEBアプリの場合、以下のように書くといいでしょう。

# module files
node_modules/

# log files
/*.log


ここのポイントは、

  • node_modules/は、package.jsonをもとに作成可能なので、管理しない
  • logなどのデバッグ用ファイルも、管理しない

というところでしょうか。必要に応じて、修正していきましょう。


.gitignoreを編集して保存後、Git Colaを開くと、記載したファイルは一覧に表示されなくなります。

一度コミットしたファイルを管理対象外にする場合

.gitignoreに記載後、該当ファイルを削除し、「削除した」というコミットをする必要があります。

GitとSVN(Subversion)の違い

GitはSubversionなどと同じく、基本的には、コードをいじったら「コミット」をして、変更履歴を保存するという使い方です。


subversionとの違いは、

  • 「ローカル」と「リモート」のリポジトリを使い分ける
  • ブランチを作って作業していき、マージする

というところですかね(間違えてたらすみません)。


subversionでは、自分の変更を共有のリポジトリにコミットしていく感じ。


Gitは、「分散型」の管理システムなので、まず自分用のローカルリポジトリにコミットし、それらをまとめて、共有のリモートリポジトリにプッシュする、という感じです。ブランチを手軽に作成してツリーで管理できるので、例えば、「A機能の実装用ブランチ」「Bバグ修正用ブランチ」などを、それぞれ作成して、切り替えながら作業することが手軽にできます。


私自身もあまり慣れていないので、よくわかってない部分もありますが、慣れれば、複雑な管理も割と簡単にできる気がします。

まとめ

個人で作るアプリにせよ、チームでのプロジェクトにせよ、コードの量が半端ないため、ソースコードのバージョン管理は、今や必須のものとなっています。Subversionに比べ、ちょっと操作が複雑なGitですが、慣れればきっと便利なはずだし、こういうのは時代の流れに乗るのが、色々と得なので、試してみることをオススメします。


ではまた!