@@ -46,11 +46,11 @@ Insert 18333fig0103.png
46
46
47
47
2005年に、Linuxカーネルを開発していたコミュニティと、BitKeeperを開発していた営利企業との間の協力関係が崩壊して、課金無しの状態が取り消されました。これは、Linux開発コミュニティ(と、特にLinuxの作者のLinus Torvalds)に、BitKeeperを利用している間に学んだ幾つかの教訓を元に、彼ら独自のツールの開発を促しました。新しいシステムの目標の幾つかは、次の通りでした:
48
48
49
- * スピード
50
- * シンプルな設計
51
- * ノンリニア開発(数千の並列ブランチ)への強力なサポート
52
- * 完全な分散
53
- * Linux カーネルのような大規模プロジェクトを(スピードとデータサイズで)効率的に取り扱い可能
49
+ * スピード
50
+ * シンプルな設計
51
+ * ノンリニア開発(数千の並列ブランチ)への強力なサポート
52
+ * 完全な分散
53
+ * Linux カーネルのような大規模プロジェクトを(スピードとデータサイズで)効率的に取り扱い可能
54
54
55
55
2005年のその誕生から、Gitは使いやすく発展・成熟してきており、さらにその初期の品質を維持しています。とても高速で、巨大プロジェクトではとても効率的で、ノンリニア開発のためのすごい分岐システム(branching system)を備えています(第3章参照)。
56
56
@@ -87,7 +87,7 @@ Gitの全てのものは、格納される前にチェックサムが取られ
87
87
88
88
Gitがチェックサム生成に用いる機構は、SHA-1ハッシュと呼ばれます。これは、16進数の文字(0-9とa-f)で構成された40文字の文字列で、ファイルの内容もしくはGit内のディレクトリ構造を元に計算されます。SHA-1ハッシュは、このようなもののように見えます:
89
89
90
- 24b9da6552252987aa493b52f8696cd6d3b00373
90
+ 24b9da6552252987aa493b52f8696cd6d3b00373
91
91
92
92
Gitはハッシュ値を大変よく利用するので、Gitのいたるところで、これらのハッシュ値を見ることでしょう。事実、Gitはファイル名ではなく、ファイル内容のハッシュ値によってアドレスが呼び出されるGitデータベースの中に全てを格納しています。
93
93
@@ -130,57 +130,57 @@ Gitディレクトリは、プロジェクトのためのメタデータ(訳
130
130
131
131
Gitをインストールするためには、Gitが依存するライブラリーである、curl、zlib、openssl、expat、libiconvを入手する必要があります。例えば、もし(Fedoraなどで)yumか(Debianベースのシステムなどで)apt-getが入ったシステムを使っているのであれば、これらのコマンドの一つを依存対象の全てをインストールするのに使う事ができます:
132
132
133
- $ yum install curl-devel expat-devel gettext-devel \
134
- openssl-devel zlib-devel
135
-
136
- $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
137
- libz-dev libssl-dev
133
+ $ yum install curl-devel expat-devel gettext-devel \
134
+ openssl-devel zlib-devel
138
135
136
+ $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
137
+ libz-dev libssl-dev
138
+
139
139
全ての必要な依存対象を持っているのであれば、先に進んでGitのウェブサイトから最新版のスナップショットを持ってくる事ができます:
140
140
141
- http://git-scm.com/download
142
-
141
+ http://git-scm.com/download
142
+
143
143
そして、コンパイルしてインストールします:
144
144
145
- $ tar -zxf git-1.7.2.2.tar.gz
146
- $ cd git-1.7.2.2
147
- $ make prefix=/usr/local all
148
- $ sudo make prefix=/usr/local install
145
+ $ tar -zxf git-1.7.2.2.tar.gz
146
+ $ cd git-1.7.2.2
147
+ $ make prefix=/usr/local all
148
+ $ sudo make prefix=/usr/local install
149
149
150
150
また、Gitのインストール後、アップデートでGitを通して最新版のGitを得ることができます。
151
151
152
- $ git clone git://git.kernel.org/pub/scm/git/git.git
153
-
152
+ $ git clone git://git.kernel.org/pub/scm/git/git.git
153
+
154
154
### Linuxにインストール ###
155
155
156
156
バイナリのインストーラーを通じてLinux上にGitをインストールしたいのであれば、大抵はディストリビューションに付属する基本的なパッケージ・マネジメント・ツールを使って、それを行なう事ができます。もしFedoraを使っているのであれば、yumを使う事が出来ます:
157
157
158
- $ yum install git-core
158
+ $ yum install git-core
159
159
160
160
もしくは、もしUbuntuのようなDebianベースのディストリュビューションを使っているのであれば、apt-getをやってみましょう:
161
161
162
- $ apt-get install git
162
+ $ apt-get install git
163
163
164
164
### Macにインストール ###
165
165
166
166
MacにGitをインストールするには2つの簡単な方法があります。もっとも簡単な方法は、グラフィカルなGitインストーラーを使うことで、このGitインストーラーはGoogle Codeのページ(図1-7参照)からダウンロードすることができます:
167
167
168
- http://code.google.com/p/git-osx-installer
168
+ http://code.google.com/p/git-osx-installer
169
169
170
170
Insert 18333fig0107.png
171
171
図 1-7. Git OS X installer
172
172
173
173
もう一つの主要な方法は、MacPorts (` http://www.macports.org ` ) からGitをインストールすることです。MacPortsをインストールした状態であれば、Gitを以下のようにインストールできます。
174
174
175
- $ sudo port install git-core +svn +doc +bash_completion +gitweb
175
+ $ sudo port install git-core +svn +doc +bash_completion +gitweb
176
176
177
177
全てのvariantsを追加する必要はありませんが、SubversionのリポジトリでGitを使う必要がまだあるなら、恐らく+svnを含めないといけないでしょう(第8章参照)。
178
178
179
179
### Windowsにインストール ###
180
180
181
181
WindowsにGitをインストールするのはとても簡単です。msysGitプロジェクトは、より簡単なインストール手続きの一つを備えています。GitHubのページから、単純にインストーラーのexeファイルをダウンロードをし、実行してください:
182
182
183
- http://msysgit.github.com/
183
+ http://msysgit.github.com/
184
184
185
185
インストール後、コマンドライン版(後で役に立つSSHクライアントを含む)とスタンダードGUI版の両方を使う事ができます。
186
186
@@ -192,66 +192,66 @@ Windows利用時の注意点: この本で紹介されている複雑なコマ
192
192
193
193
Gitには、git configと呼ばれるツールが付属します。これで、どのようにGitが見えて機能するかの全ての面を制御できる設定変数を取得し、設定することができます。これらの変数は三つの異なる場所に格納されうります:
194
194
195
- * ` /etc/gitconfig ` file: システム上の全てのユーザーと全てのリポジトリに対する設定値を保持します。もし` --system ` オプションを` git config ` に指定すると、明確にこのファイルに読み書きを行ないます。
196
- * ` ~/.gitconfig ` file: 特定のユーザーに対する設定値を保持します. ` --global ` オプションを指定することで、Gitに、明確にこのファイルに読み書きを行なわせることができます。
197
- * 現在使っている、あらゆるリポジトリのGitディレクトリの設定ファイル(` .git/config ` のことです): 特定の単一リポジトリに対する設定値を保持します。それぞれのレベルの値は以前のレベルの値を上書きするため、` .git/config ` の中の設定値は` /etc/gitconfig ` の設定値に優先されます。
195
+ * ` /etc/gitconfig ` file: システム上の全てのユーザーと全てのリポジトリに対する設定値を保持します。もし` --system ` オプションを` git config ` に指定すると、明確にこのファイルに読み書きを行ないます。
196
+ * ` ~/.gitconfig ` file: 特定のユーザーに対する設定値を保持します. ` --global ` オプションを指定することで、Gitに、明確にこのファイルに読み書きを行なわせることができます。
197
+ * 現在使っている、あらゆるリポジトリのGitディレクトリの設定ファイル(` .git/config ` のことです): 特定の単一リポジトリに対する設定値を保持します。それぞれのレベルの値は以前のレベルの値を上書きするため、` .git/config ` の中の設定値は` /etc/gitconfig ` の設定値に優先されます。
198
198
199
- Windows環境下では、Gitは` $HOME ` ディレクトリ(環境変数` USERPROFILE ` で指定)の中の` .gitconfig ` ファイルを検索に行きます。` $HOME ` ディレクトリはほとんどの場合` C:\Documents and Settings\$USER ` か ` C:\Users\$USER ` のいずれかです($USERは環境変数` USERNAME ` で指定)。また、インストーラー時にWindowsシステムにGitをインストールすると決めたところにある、MSysのルートとの相対位置であったとしても、/etc/gitconfigも見に行きます。
199
+ Windows環境下では、Gitは` $HOME ` ディレクトリ(環境変数` USERPROFILE ` で指定)の中の` .gitconfig ` ファイルを検索に行きます。` $HOME ` ディレクトリはほとんどの場合 ` C:\Documents and Settings\$USER ` か ` C:\Users\$USER ` のいずれかです($USERは環境変数` USERNAME ` で指定)。また、インストーラー時にWindowsシステムにGitをインストールすると決めたところにある、MSysのルートとの相対位置であったとしても、 /etc/gitconfigも見に行きます。
200
200
201
201
### 個人の識別情報 ###
202
202
203
203
Gitをインストールしたときに最初にすべきことは、ユーザー名とE-mailアドレスを設定することです。全てのGitのコミットはこの情報を用いるため、これは重要で、次々とまわすコミットに永続的に焼き付けられます:
204
204
205
- $ git config --global user.name "John Doe"
206
- $ git config --global user.email
[email protected]
205
+ $ git config --global user.name "John Doe"
206
+ $ git config --global user.email [email protected]
207
207
208
208
また、もし` --global ` オプションを指定するのであれば、Gitはその後、そのシステム上で行なう(訳者注:あるユーザーの)全ての操作に対して常にこの情報を使うようになるため、この操作を行なう必要はたった一度だけです。もし、違う名前とE-mailアドレスを特定のプロジェクトで上書きしたいのであれば、そのプロジェクトの(訳者注:Gitディレクトリの)中で、` --global ` オプション無しでこのコマンドを実行することができます。
209
209
210
210
### エディター ###
211
211
212
212
今や、個人の識別情報が設定され、Gitがメッセージのタイプをさせる必要があるときに使う、標準のテキストエディターを設定できます。標準では、Gitはシステムのデフォルト・エディターを使います。これは大抵の場合、ViかVimです。Emacsのような違うテキスト・エディターを使いたい場合は、次のようにします:
213
213
214
- $ git config --global core.editor emacs
215
-
214
+ $ git config --global core.editor emacs
215
+
216
216
### diffツール ###
217
217
218
218
設定したいと思われる、その他の便利なオプションは、マージ(訳者注:複数のリポジトリを併合すること)時の衝突を解決するために使う、標準のdiffツールです。vimdiffを使いたいとします:
219
219
220
- $ git config --global merge.tool vimdiff
220
+ $ git config --global merge.tool vimdiff
221
221
222
222
Gitはkdiff3、tkdiff、meld、xxdiff、emerge、vimdiff、gvimdiff、ecmerge、opendiffを確かなマージ・ツールとして扱えます。カスタム・ツールもまた設定できますが、これをする事に関しての詳細な情報は第7章を参照してください。
223
223
224
224
### 設定の確認 ###
225
225
226
226
設定を確認したい場合は、その時点でGitが見つけられる全ての設定を一覧するコマンドである` git config --list ` を使う事ができます:
227
227
228
- $ git config --list
229
- user.name=Scott Chacon
230
-
231
- color.status=auto
232
- color.branch=auto
233
- color.interactive=auto
234
- color.diff=auto
235
- ...
228
+ $ git config --list
229
+ user.name=Scott Chacon
230
+
231
+ color.status=auto
232
+ color.branch=auto
233
+ color.interactive=auto
234
+ color.diff=auto
235
+ ...
236
236
237
237
Gitは異なったファイル(例えば` /etc/gitconfig ` と` ~/.gitconfig ` )から同一のキーを読み込むため、同一のキーを1度以上見ることになるでしょう。この場合、Gitは見つけたそれぞれ同一のキーに対して最後の値を用います。
238
238
239
239
また、Gitに設定されている特定のキーの値を、` git config {key} ` をタイプすることで確認することができます:
240
240
241
- $ git config user.name
242
- Scott Chacon
241
+ $ git config user.name
242
+ Scott Chacon
243
243
244
244
## ヘルプを見る ##
245
245
246
246
もし、Gitを使っている間は助けがいつも必要なら、あらゆるGitコマンドのヘルプのマニュアル・ページ(manpage)を参照する3種類の方法があります。
247
247
248
- $ git help <verb >
249
- $ git <verb > --help
250
- $ man git-<verb >
248
+ $ git help <verb>
249
+ $ git <verb> --help
250
+ $ man git-<verb>
251
251
252
252
例えば、configコマンドのヘルプのmanpageを次のコマンドを走らせることで見ることができます。
253
253
254
- $ git help config
254
+ $ git help config
255
255
256
256
これらのコマンドは、オフラインのときでさえ、どこでも見る事ができるので、すばらしいです。
257
257
もしmanpageとこの本が十分でなく、人の助けが必要であれば、フリーノードIRCサーバー(irc.freenode.net)の` #git ` もしくは` #github ` チャンネルにアクセスしてみてください。これらのチャンネルはいつも、全員がGitに関してとても知識があり、よく助けてくれようとする数百人の人々でいっぱいです。
0 commit comments