Kernel Newbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Newbies Japan

  • Webリソース

  • Mailing List

Wiki bits

  • Site Editors

  • Navigation Menu

  • WikiWall Terms of Service

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 8 as of 2007-08-23 16:45:53
KernelNewbiesJP:
  • 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(カーネルリポジトリ)をチェックアウトするというような順のブートストラッピングが必要です。 あなたのディストリビューションがすでに、利用可能な 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 する (例: ハッキングもしくはパッチ適用)

# リポジトリに移動する

$ git commit -a

# 修正をする

$ vi drivers/net/sk98lin/skdim.c

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

$ 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 を得る

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

$ git diff master..HEAD

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

カレントブランチとマスターブランチの変更のリストを得る

$ git log master..HEAD

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

changeset のすべての状況をえるかわりに、それぞれの変更のオンラインサマ リーを得るには:

$ 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 を実施する。

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01