Syntax highlighting of Kernel_Hackers'_guide_to_git

This page is come from Jeff Garzik's "Kernel Hackers' guide to git" translated into Japanese.

このページは Jeff Garzik の "Kernel Hackers' guide to git" を翻訳したものです。http://linux.yyz.us/git-howto.html


[[TableOfContents(2)]]

= 最初に =
== git のインストール ==
Git を利用するには、git.git (Git リポジトリ)からチェックアウトをして、インストールし、その後linux-2.6.gti(カーネルリポジトリ)をチェックアウトするというような順のブートストラッピングが必要です(訳注:linux カーネルのハッキングを git を利用して行うためには、まず最新の gitソース を git リポジトリから git を使って取り出すということをしないといけない、ということを言おうとしています。なので...) あなたのディストリビューションがすでに、利用可能な git のバージョンを提供していてるのであれば、それを最初に使ってみてください。

 * Fedora Core 3 とそれ以降では: git-core パッケージは [http://fedoraproject.org/wiki/Extras Feroda Extras] にあります
  . `yum install git-core`
もしあなたのディストロがパッケージを用意していない場合には、gitのソースコードの daily スナップショットをダウンロードすることから始める必要があります。

最新の安定版のダウンロード先は: http://www.kernel.org/pub/software/scm/git/

tarball をビルドするために依存するのは: [http://www.zlib.net/ zlib], [http://curl.haxx.se/ libucurl], libcrypto,([http://www.openssl.org/ openssl]) です

tar ball をインストールするには:

`アンパック & make & sudo make prefix=/usr/local install`

この残りのドキュメントを読んだ後、戻ってきて、現在のgit を最新の git に更新してください。最新版は以下にあります:

git://git.kernel.org/pub/scm/git/git.git

== 最初の段階での linux kernel ツリーのダウンロード ==
`$ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6`

備考:カーネルツリーはとても大きいので、これは数100MBのデータになることがあります。

----------
= 基本操作 =
== ローカルカーネルツリーを最新の 2.6.x upstream に更新する("fast-forward merge") ==
`$ cd linux-2.6`

`$ git pull git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git`

== 全てのローカルな修正を元に戻す ==
`$ git checkout -f`

== あなたの修正を checkin する (例: ハッキングもしくはパッチ適用) ==
`# リポジトリに移動する`

`$ cd linux-2.6`


`# 修正をする`

`$ vi drivers/net/sk98lin/skdim.c`


`#注:ファイルを追加したり削除した場合は、git-add と git-rm を実行すること`

`# すべての修正をチェックインする`

`$ git commint -a`

== 作業ディレクトリの全ての変更をdiff形式で表示する ==
最後の git-update-index からの変更を表示

`$ git diff`

最後のcommit からの変更を表示

`$ git diff HEAD`

== 作業ディレクトリの全ての変更について要約を得る ==
`$ git status`

== すべての変更をリストする ==
`$ git log`

== 指定したファイルに関連する全ての変更をリストする ==
(このケースでは net/ieee80211/ieeee80211_module.c)

`$ git-whatchanged net/ieee80211/ieee80211_module.c`

----------
= ブランチ =
== 全てのブランチをリストする ==
`$ git branch`

== 作業ディレクトリで望みのブランチをカレントに設定する ==
`$ git checkout $branch`

== 新ブランチを作り、カレントに設定する ==
`$ git checkout -b my-new-branch-name master`

== どのブランチがカレントか調べる ==
`$ git branch`

(ブランチに * が付いていつものがカレント)

== カレントブランチとマスターブランチの diff を得る ==
'''大抵のブランチ付き'''ツリーでは diff やマージを簡単に行うため、
.git/refs/heads/master には現状の 'バニラ'upstream ツリーが格納されている
(ブランチが無いツリーの場合、マスターには 単にあなたの最新の変更が 格納されている)

`$ git diff master..HEAD`

(これは '''git diff HEAD''' と同じ、HEADブランチを使っている場合)

== カレントブランチとマスターブランチの変更のリストを得る ==
`$ git log master..HEAD`

(これは '''git log''' と同じ、HEAD ブランチを使っている場合)

changeset の全記述を得る代わりに、各変更の1行サマリを得るには:

`$ git log master..HEAD | git shortlog`

== 1つのブランチの変更を別のものにマージする ==
あなたがブランチA と ブランチB で作業していたとして、これらの2つのブラ ンチでの作業が終了した後、これらの作業をブランチM にマージすることを想 定。

`$ git chekout M             # ブランチM にスイッチ`

`$ git pull . A              # A を M にマージ`

`$ git pull . B              # B を M にマージ`

----------
= いろいろなこと =
== バークレイ mbox形式ファイルにあるすべてのパッチを適用 ==
最初に、git-core リポジトリの tools サブディレクトリがあなたのPATH に 設定されていることを確認して。

`$ cd my-kernel-tree-2.6`

`$ git-applymbox /path/to/mbox /path/to/signoff.txt`

ファイル /path/to/mbox はバークレイ mbox ファイルで、git リポジトリに コミットされるべき 1つかそれ以上のパッチが含まれている。ここではオプションとして、ファイル /path/to/signoff.txt を指定している。これは各 changeset の記述が含まれるテキストファイル。 Linux カーネルの場合、ここにはだいたい以下のようなものが含まれる

`Signed-off-by: Your Name <your@email.com>`

この行はほぼ全てのカーネルへの提案に共通。

== tag をダウンロードすることを忘れないように ==
git pull は sha1-inedxed オブジェクトデータと要求されたリモートhead を ダウンロードするだけである。これでは、.git/refs/tags と .git/refs/head/ ディレクトリの更新はされない。 タグについては、 git pull --tags を実施する。