分散バージョン管理システムGit入門:Beginner's Guide(3/3 ページ)
バージョン管理システムというとSubversionやCVSが有名だが、近年急速にユーザーを増やしている「Git」は、分散型のバージョン管理システムとして支持を集めている。本稿では、はじめてGitに触れる方のために、その導入方法や基本的な使い方を解説する。
リモートリポジトリから変更点を取得する
リモートリポジトリに加えられた変更点を取得し、それらをローカルリポジトリに適用するには「git pull」コマンドを利用する。次の実行例は、ユーザー名「hoge」で「git.sourceforge.jp:/gitroot/test /test.git」というリポジトリから変更点を取得する例だ。
$ git pull hoge@git.sourceforge.jp:/gitroot/test/test.git remote: Counting objects: 7, done. remote: Compressing objects: 100% (5/5), done. remote: Total 5 (delta 3), reused 0 (delta 0) Unpacking objects: 100% (5/5), done. From hoge@git.sourceforge.jp:/gitroot/test/test.git * branch HEAD -> FETCH_HEAD Updating fd311c5..cf6c47c Fast forward macosx/HBPreferencesTransFormer.h | 16 ++++++++++++++++ macosx/HBPreferencesTransFormer.m | 14 ++++++++++++++ 2 files changed, 30 insertions(+), 0 deletions(-) create mode 100644 macosx/HBPreferencesTransFormer.h create mode 100644 macosx/HBPreferencesTransFormer.m
このとき、もし競合が発生した場合は次のようにその旨が表示される。
$ git pull hoge@git.sourceforge.jp:/gitroot/test/test Auto-merged markup.pl CONFLICT (content): Merge conflict in markup.pl Automatic merge failed; fix conflicts and then commit the result.
競合が発生したファイル(前記の例ではmarkup.pl)の競合が発生した位置には次のようなマーカーが挿入され、どのように競合が起こっているかが分かるようになっている。
sub ulist {
if( $l =~ m/^☆(リスト.*)$/ ) {
$cap = $1;
}
<<<<<<< HEAD:markup.pl
print "<ul>\n";
while( $l =~ m/^・/ ) {
$l =~ s/^・(.*)$/<li>$1<\/li>/;
print "foo:$l\n";
$l = <>;
=======
print "<p><b>$cap</b></p>\n";
print list_start( $cap );
while( $l = <> ) {
>>>>>>> e74597cbfdb9995e540ca9e8c8a6e79705e2889c:markup.pl
chomp $l;
$l =~ s/&/&/g;
$l =~ s/</</g;
$l =~ s/>/>/g;
}
この中で、「<<<<<<< HEAD:markup.pl」から「=======」までがマスターリポジトリ内のソースコード、「=======」から「≪>>>& gt;>>> e74597cbfdb9995e540ca9e8c8a6e79705e2889c:markup.pl」までがローカルリポジトリ内にあったソースコードだ。競合部分を確認・編集し、競合を解消して「git commit」コマンドでコミットを実行すれば、git pushでpushが行えるようになる。
ヘルプの使い方
最後に、オンラインマニュアルの使い方について紹介しておこう。Gitのオンラインマニュアルは、UNIXの伝統に従いmanページで提供されており、Gitの概要については「man git」で確認できる。
$ man git
NAME
git - the stupid content tracker
SYNOPSIS
git [--version] [--exec-path[=GIT_EXEC_PATH]]
[-p|--paginate|--no-pager]
[--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
[--help] COMMAND [ARGS]
...
また、「git init」や「git commit」といったサブコマンドの使い方は、例えば「man git-init」や「man git-commit」のように、ハイフンでサブコマンドを繋いでmanコマンドを実行することで閲覧できる。
$ man git-init
GIT-INIT(1) Git Manual GIT-INIT(1)
NAME
git-init - Create an empty git repository or reinitialize an existing one
SYNOPSIS
git init [-q | --quiet] [--bare] [--template=]
[--shared[=]]
...
そのほか、「man gittutorial」でチュートリアルを読むこともできる。現時点でマニュアルは英語でしか提供されていないが、これに目を通しておけば基本的なGitの使い方をマスターできるだろう。
新しいことをはじめる前には「Beginner's Guide」で知識を得てみませんか?
Copyright © 2010 OSDN Corporation, All Rights Reserved.
関連記事
WindowsでSubversionを使う:TortoiseSVNでバージョン管理
GUIでリポジトリにアクセスできるTortoiseSVNを用いれば、WindowsユーザーでもSubversionによるバージョン管理が簡単に行える。本稿では、TortoiseSVNの導入から基本的な使用方法までを解説する。
コード開発プロジェクトにおけるソース管理システムの正しい利用法
ソース管理システムの適切な使いこなしはプログラマーにとって重要なスキルの1つだ。本稿では、ソース管理システムの初心者が陥りやすい落とし穴および、それらを回避するためのベストプラクティスを具体例とともに解説する。
シェルスクリプトで役立つテキスト文字列のパターンマッチングの基礎
効率的なシェルスクリプティングを行う上で、文字列にかんする操作は非常に重要な役割を果たす。本稿では、これからシェルパターンや正規表現と呼ばれる強力なパターンマッチングを学ぼうとする方に向けたガイドをお届けする。
FreeBSDでLAMPをセットアップする
Linuxと同等、もしくはそれ以上に各方面の第一線で活用するFreeBSD。ライセンスやメンテナンスの面でApacheやMySQLなどを使うことに抵抗もあるかもしれないが、FreeBSDでこれらを使ったサーバの構築法を解説しよう。
初心者がつまずくUbuntu 10の問題点
人気のLinuxディストリビューションであるUbuntuだが、初心者を困惑させるような問題点も幾つか残っている。さらにたちが悪いのは、いずれも解決可能な問題ばかりであるということだ。ここでは、Ubuntuで初心者がつまずく10の問題点を挙げてみよう。
仮想アプライアンス入門
仮想マシンにOSやアプリケーションといったソフトウェアを組み合わせた仮想アプライアンスがソフトウェア配布の実質的な手段になりつつあり、仮想アプライアンスベンダーという新たな業種が生まれている。ここでは、さまざまな仮想アプライアンスを一挙に紹介する。
Linux仮想化入門
仮想化技術は日進月歩の勢いで進化を遂げている。本稿では、これから仮想化技術を試してみようとする方のために、よく使われている仮想化環境であるVMware、VirtualBox、QEMUの3つを紹介する。
Webサービスの基礎知識
Webサービスは、コンピュータ同士を直接結んでリモートリソースにアクセスする方法の1つである。本稿では、SOAPやWS-*規格群など、Webサービスの基礎知識をまとめた。- SourceForge.JP、Gitのサポートを開始
