検索
特集

分散バージョン管理システムGit入門Beginner's Guide(2/3 ページ)

バージョン管理システムというとSubversionやCVSが有名だが、近年急速にユーザーを増やしている「Git」は、分散型のバージョン管理システムとして支持を集めている。本稿では、はじめてGitに触れる方のために、その導入方法や基本的な使い方を解説する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
SourceForge.JP Magazine

Gitのインストール

 各種Linuxディストリビューションや各種BSDでGitを利用するなら、多くの場合システム標準のパッケージマネージャでGitをインストールできる。また、最新版のRPM/DebパッケージやMac OS X向けのインストーラ、ソースコードについてはGitのダウンロードページに入手先へのリンクが掲載されている。

図5
図5 msysGitのインストール先

 一方、WindowsでGitを使いたい場合はCygwinを利用するか、もしくはMinGW/MSysを使用したバイナリを配布しているmsysGitを利用する。msysGitを利用するとGitの利用に必要なbashやSSH、mvやrm、lsといった各種UNIX互換コマンド、Perlなどをまとめて導入できるほか、簡単なGUIツールも付属している。ただし、GitとSubversionを連携させる「git-svn」などは含まれない。Cygwinを利用している場合やそのほかのUNIX/Linux由来アプリケーション、git-svnなどを利用したい場合はCygwinを、Gitのみを利用したい場合はmsysGitを利用するとよいだろう。なお、msysGitはデフォルトでは「C:\Program Files\Git\」以下に各種ツールをインストールするので、Cygwinと共存させることも可能だ(図5)。

Gitを使った基本的なプロジェクト管理:ローカルリポジトリの作成

 Gitを使ったソースコード管理は、まずローカルリポジトリを作成することから始まる。ローカルリポジトリを作成するには2つの方法がある。新規にプロジェクトを立ち上げる場合や、別のバージョン管理システムからGitに切り替える場合など、すでにローカルにGitで管理したいファイルがある場合は、ファイルが格納されているディレクトリで「git init」コマンドを実行すればよい。例えば、「/home/test/test」ディレクトリをローカルリポジトリにする場合、後記のように実行する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 一方、、Gitでファイル管理を行っているプロジェクトに参加する場合や、Gitで管理されているソースコードを入手したいという場合は「git clone <リポジトリ>」コマンドを利用する。例えば、「git.sourceforge.jp/gitroot/test/test.git」というリポジトリからファイルをダウンロードしてローカルリポジトリとする場合、次のように実行する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

変更のコミット

 管理しているファイルに変更を加えた後、コミットを行うことで変更点がGitに記録される。コミットを行うには、「git commit」コマンドを利用する。なお、CVSやSubverseionなどの場合、コミット対象を省略すると変更したファイルが自動的にコミット対象となったが、Gitの場合はコミットするファイルを「git add」コマンドで明示的に指定する必要がある。「git status」コマンドを実行することで修正されたファイルを確認できるので、修正されたファイルのうちコミットしたいファイルを確認し、git addでコミット対象に追加するとよいだろう。

 例えば、Gitでバージョン管理を行っているファイルに変更を加えた状態でgit statusコマンドを実行すると、後記のように「Changed but notupdated:」以下に変更が加えられたファイルが表示される。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 この例の場合、「HBPreferencesTransFormer.h」および「HBPreferencesTransFormer.m」が変更されたファイルだ。そこで、git addコマンドでこのファイルをコミット対象に追加する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 git addコマンドでは変更されたファイルだけでなく、新たに作成したファイルも追加できる。一通りコミットしたいファイルを指定したら、最後に「git commit」コマンドでコミットを実行する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 なお、「git commit -a」のように-aオプション付きでコミットを実行することで、変更されたファイルを自動的にコミット対象に加えてコミットを実行することもできる。

ローカルリポジトリに加えた変更をリモートリポジトリに送信する

 ローカルリポジトリに加えた変更をリモートリポジトリに送信するには、「git push <リポジトリ名>」コマンドを利用する。ローカルリポジトリでの作業が一段落し、加えた変更点をマスターリポジトリ(SourceForge.JPのGitリポジトリなど)に送信する場合などに、このコマンドを利用する。

 例えば、ユーザー名「hoge」で「git.sourceforge.jp:/gitroot/test/test.git」というリポジトリに変更点を送信したい場合、次のように実行する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 なお、自分が行った変更と競合するような変更がすでに行われていた場合、次のようなメッセージが表示されてpushに失敗する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 この場合、競合を解消してから再度pushを実行する必要がある。最も簡単なのは、後述する「git pull」コマンドを使用して競合部分を取得し、ローカルリポジトリを修正する方法だ。

SourceForge.JPでGitリポジトリを利用する場合の注意点

 SourceForge.JPでは、各プロジェクトが利用できるGitリポジトリが用意されている。リポジトリの作成は、各プロジェクトの「ソースコード」タブ内にある「Gitリポジトリ管理」で行える。

 なお、リポジトリ作成後の初回のpush時は、後記のように明示的にブランチを指定する必要があるので注意してほしい(この例では「master」がブランチ名)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Copyright © 2010 OSDN Corporation, All Rights Reserved.

ページトップに戻る