Size: 6128
Comment:
|
← Revision 12 as of 2017-12-30 08:13:16 ⇥
Size: 6716
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
このページは Jeff Garzik の "Kernel Hackers' guide to git" を翻訳したものです。 http://linux.yyz.us/git-howto.html |
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)>> |
Line 6: | Line 10: |
Git は git.git (Git リポジトリ)と linux-2.6.gti(カーネルリポジトリ)か らチェックアウトしてからインストールするのであればブートストラッピング が必要です。 あなたのディストリビューションがすでにgit の使えるバージョ ンを提供していてるのであれば、それを最初に使ってみてください。 |
Git を利用するには、git.git (Git リポジトリ)からチェックアウトをして、インストールし、その後linux-2.6.gti(カーネルリポジトリ)をチェックアウトするというような順のブートストラッピングが必要です(訳注:linux カーネルのハッキングを git を利用して行うためには、まず最新の gitソース を git リポジトリから git を使って取り出すということをしないといけない、ということを言おうとしています。なので...) あなたのディストリビューションがすでに、利用可能な git のバージョンを提供していてるのであれば、それを最初に使ってみてください。 |
Line 11: | Line 12: |
* Fedora Core 3 とそれ以降では: git-core パッケージは [http://fedoraproject.org/wiki/Extras Feroda Extras] にあります yum install git-core |
* Fedora Core 3 とそれ以降では: git-core パッケージは [[http://fedoraproject.org/wiki/Extras|Feroda Extras]] にあります . `yum install git-core` |
Line 19: | Line 18: |
tarball をビルドするために依存するのは: zlib, libucurl, libcrypto,(openssl) です | tarball をビルドするために依存するのは: [[http://www.zlib.net/|zlib]], [[http://curl.haxx.se/|libucurl]], libcrypto,([[http://www.openssl.org/|openssl]]) です |
Line 23: | Line 22: |
''アンパック & make & sudo make prefix=/usr/local install'' | `アンパック & make & sudo make prefix=/usr/local install` |
Line 25: | Line 24: |
この残りのドキュメントを読んだ後、戻ってきて、現在のgit を最新の git に更新してください。最新版は以下にあります: |
この残りのドキュメントを読んだ後、戻ってきて、現在のgit を最新の git に更新してください。最新版は以下にあります: |
Line 30: | Line 28: |
Line 32: | Line 29: |
$ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6 |
`$ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6` |
Line 37: | Line 33: |
------------------------------------------------------------------------------------------ = 基本タスク = |
---------- = 基本操作 = |
Line 40: | Line 36: |
`$ cd linux-2.6` | |
Line 41: | Line 38: |
$ cd linux-2.6 $ git pull git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git |
`$ git pull git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git` |
Line 45: | Line 41: |
$ git checkout -f |
`$ git checkout -f` |
Line 49: | Line 44: |
`# リポジトリに移動する` | |
Line 50: | Line 46: |
# リポジトリに移動する $ git commit -a |
`$ cd linux-2.6` |
Line 53: | Line 48: |
# 修正をする $ vi drivers/net/sk98lin/skdim.c |
|
Line 56: | Line 49: |
# すべての修正をチェックインする $ git commint -a |
`# 修正をする` `$ vi drivers/net/sk98lin/skdim.c` `#注:ファイルを追加したり削除した場合は、git-add と git-rm を実行すること` `# すべての修正をチェックインする` `$ git commint -a` |
Line 60: | Line 61: |
Line 63: | Line 63: |
$ git diff | `$ git diff` |
Line 67: | Line 67: |
$ git diff HEAD | `$ git diff HEAD` |
Line 69: | Line 69: |
== 作業ディレクトリでの全ての変更を得る == $ git status |
== 作業ディレクトリの全ての変更について要約を得る == `$ git status` |
Line 74: | Line 73: |
$ git log |
`$ git log` |
Line 78: | Line 76: |
Line 81: | Line 78: |
$ git-whatchanged net/ieee80211/ieee80211_module.c | `$ git-whatchanged net/ieee80211/ieee80211_module.c` |
Line 83: | Line 80: |
--------------------------- | ---------- |
Line 85: | Line 82: |
== 全てのブランチをリストする == `$ git branch` |
|
Line 86: | Line 85: |
== 全てのブランチをリストする == $ git branch == 作業ディレクトリで必要なブランチをカレントにする == $ git checkout $branch |
== 作業ディレクトリで望みのブランチをカレントに設定する == `$ git checkout $branch` |
Line 95: | Line 89: |
`$ git checkout -b my-new-branch-name master` | |
Line 96: | Line 91: |
$ git checkout -b my-new-branch-name master == どのブランチが最新なのか調べる == $ git branch |
== どのブランチがカレントか調べる == `$ git branch` |
Line 105: | Line 97: |
'''大抵のブランチ付き'''ツリーでは diff やマージを簡単に行うため、 .git/refs/heads/master には現状の 'バニラ'upstream ツリーが格納されている (ブランチが無いツリーの場合、マスターには 単にあなたの最新の変更が 格納されている) |
|
Line 106: | Line 101: |
'''大抵のブランチ付き'''ツリーでは、.git/refs/heads/master にはカレントの 'バニラ'upstream ツリーが格納されている、簡単にdiff したり、マージする ため(ブランチが無いツリーの場合、マスターには 単にあなたの最新の変更が 格納されている) $ git diff master..HEAD |
`$ git diff master..HEAD` |
Line 116: | Line 106: |
$ git log master..HEAD |
`$ git log master..HEAD` |
Line 121: | Line 110: |
changeset のすべての状況をえるかわりに、それぞれの変更のオンラインサマ リーを得るには: |
changeset の全記述を得る代わりに、各変更の1行サマリを得るには: |
Line 124: | Line 112: |
$ git log master..HEAD | git shortlog | `$ git log master..HEAD | git shortlog` |
Line 127: | Line 115: |
あなたがブランチA と ブランチB で作業していたとして、これらの2つのブラ ンチでの作業が終了した後、これらの作業をブランチM にマージすることを想定。 | |
Line 128: | Line 117: |
あなたがブランチA と ブランチB で作業していたとして、これらの2つのブラ ンチでの作業が終了した後、これらの作業をブランチM にマージすることを想 定。 |
`$ git chekout M # ブランチM にスイッチ` |
Line 132: | Line 119: |
$ git chekout M # ブランチM にスイッチ $ git pull . A # A を M にマージ $ git pull . B # B を M にマージ |
`$ git pull . A # A を M にマージ` |
Line 136: | Line 121: |
------------------------------------------------------------------------- = いろいろな破片 = |
`$ git pull . B # B を M にマージ` |
Line 139: | Line 123: |
---------- = いろいろなこと = |
|
Line 140: | Line 126: |
最初に、git-core リポジトリの tools サブディレクトリがあなたのPATH に 設定されていることを確認して。 | |
Line 141: | Line 128: |
最初に、git-core リポジトリの tools サブディレクトリがあなたのPATH に 設定されていることを確認して。 |
`$ cd my-kernel-tree-2.6` |
Line 144: | Line 130: |
$ cd my-kernel-tree-2.6 $ git-applymbox /path/to/mbox /path/to/signoff.txt |
`$ git-applymbox /path/to/mbox /path/to/signoff.txt` |
Line 147: | Line 132: |
ファイル /path/to/mbox はバークレイ mbox ファイルで、git リポジトリに コミットされるべき 1つかそれ以上のパッチが含まれている。追加ファイルの /path/to/signoff.txt は各 changeset の記述が含まれるテキストファイル。 Linux カーネルの場合、ここにはだいたい以下のようなものが含まれる |
ファイル /path/to/mbox はバークレイ mbox ファイルで、git リポジトリに コミットされるべき 1つかそれ以上のパッチが含まれている。ここではオプションとして、ファイル /path/to/signoff.txt を指定している。これは各 changeset の記述に追加する内容を記したテキストファイルである。Linux カーネルの場合、全ての変更の提案には以下のような行を含めるのが一般的である。 |
Line 152: | Line 134: |
Signed-off-by: Your Name <your@email.com> | `Signed-off-by: Your Name <your@email.com>` |
Line 156: | Line 138: |
== ときどき tag をダウンロードすることを忘れないように == git pull は sha1-inedxed オブジェクトデータと要求されたリモートhead を ダウンロードするだけである。これでは、.git/refs/tags と .git/refs/head/ ディレクトリの更新はされない。 タグについては、 git pull --tags を実施する。 |
== tag をダウンロードすることを忘れないように == git pull は sha1-inedxed オブジェクトデータと要求されたリモートhead を ダウンロードするだけである。これでは、.git/refs/tags と .git/refs/head/ ディレクトリの更新はされない。 タグについては、 git pull --tags を実施する。 |
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
最初に
git のインストール
Git を利用するには、git.git (Git リポジトリ)からチェックアウトをして、インストールし、その後linux-2.6.gti(カーネルリポジトリ)をチェックアウトするというような順のブートストラッピングが必要です(訳注:linux カーネルのハッキングを git を利用して行うためには、まず最新の gitソース を git リポジトリから git を使って取り出すということをしないといけない、ということを言おうとしています。なので...) あなたのディストリビューションがすでに、利用可能な git のバージョンを提供していてるのであれば、それを最初に使ってみてください。
Fedora Core 3 とそれ以降では: git-core パッケージは Feroda Extras にあります
yum install git-core
もしあなたのディストロがパッケージを用意していない場合には、gitのソースコードの daily スナップショットをダウンロードすることから始める必要があります。
最新の安定版のダウンロード先は: http://www.kernel.org/pub/software/scm/git/
tarball をビルドするために依存するのは: zlib, libucurl, libcrypto,(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 を実施する。