入門Git

入門Git
著者 濱野純
ジャンル IT系書籍 > アプリケーション
書店発売日 2009/09/19
ISBN 9784798023809
判型・ページ数 A5・340ページ
定価 2420円
(本体2200円+税10%)
在庫 品切れ・重版未定

この本に関するお問い合わせ・感想

オープンソースの分散型版管理システム「git」の入門書です。gitの開発責任者である著者が、gitを使う上で知っておくべき基本概念と設計理念、歴史を育てていくための基本操作とその背景、育てた歴史の調査方法、パッチベースの開発ワークフロー、gitignore、gitconfig、リモート定義、gitattribute、bisectといったgitの各機構の意味、よく陥る間違い・パニックになりそうな事態からの脱出方法、育てた歴史を公開する方法などを丁寧に解説します。Linus Torvalds氏による「はしがき」付き。

【サポートはこちら】https://www.shuwasystem.co.jp/support/7980html/2380.html
Chapter 1 gitとは
1.1. gitのおいたち
1.2. 版管理の目的と機能
1.2.1. 以前の状態に戻れる
1.2.2. 変更履歴を調べる
1.2.3. ディレクトリ構造全体を1つの単位として記録する
1.2.4. 「なぜ」と「誰が」を記録する
1.3. 何を版管理するか
1.4. 分散型と集中型

Chapter 2 gitの基本概念
2.1. プロジェクトの状態の記録
2.2. プロジェクトの歴史の記録
2.3. コミット家系図
2.4. ブランチ
2.5. ワークツリーとリポジトリ
2.6. タグ
2.7. インデックスとワークツリー
2.8. コミット家系図とマージ
2.8.1. 3-wayマージ
2.8.2. 3-wayマージの社会的前提条件
2.8.3. 競合する変更のマージ
2.8.4. 3-wayマージによるファイル移動のサポート
2.9. リポジトリの構造

Chapter 3 インストールと初期構成
3.1. パッケージをインストール
3.1.1. Fedora
3.1.2. Debian
3.1.3. MacOS
3.1.4. FreeBSD
3.1.5. Cygwin
3.1.6. msysGit
3.2. ソースから作る
3.3. 初期構成

Chapter 4 独りで使う
4.1. リポジトリの初期化
4.2. 最初のコミット
4.3. 変更を記録する
4.3.1. 最初の変更
4.3.2. git diffで変更を確認する
4.3.3. git addで状態記録することをリクエストする
4.3.4. git diff HEADで変更のすべてを再確認する
4.3.5. git diff HEADとgit diff
4.3.6. git add -uを使う
4.3.7. git commitでエディタを使う
4.3.8. git statusコマンドと.gitignore
4.3.9. git commit -aコマンドを使う
4.4. インデックスを理解する
4.5. 変更履歴を見る
4.5.1. git logを使う
4.5.2. git logのオプションを使う
4.5.3. gitkを使う
4.6. 部分変更を記録する
4.6.1. git add -pを使う
4.6.2. git diff --cachedを使う
4.6.3. git commit -vを使う
4.6.4. git add -Aを使う
4.6.5. git commit を使う
4.6.6. git showを使う
4.6.7. git reset を使う
4.7. 履歴の検索
4.7.1. git logで探す
4.7.2. git log で探す
4.7.3. git log --grep=で探す
4.7.4. git blameで探す
4.8. 変更を取り消す
4.8.1. git revertを使って過去のコミットの効果を打ち消す
4.8.2. git checkout を使ってワークツリーにした変更を取り消す
4.9. 歴史を書きかえる
4.9.1. git reset HEAD^でコミットを捨てる
4.9.2. git reset --hard HEAD^でコミットも変更点も捨てる
4.9.3. コミットをやり直す
4.9.4. git rebase -iで書きかえる

Chapter 5 2か所で使う
5.1. バックアップリポジトリを作る
5.2. 2か所目を準備
5.3. 並行開発した変更のマージ
5.4. タグを付けてリリースを管理する
5.5. コミットを名前で呼ぶ
5.6. git describeコマンド
5.7. git describe --containsコマンド

Chapter 6 グループで使う
6.1. 共用リポジトリの準備
6.2. 共用リポジトリからのclone
6.3. より高度なグループ開発
6.3.1. Peer-to-Peerスタイル
6.3.2. 階層的な共用リポジトリ
6.3.3. リポジトリ構成の比較

Chapter 7 ブランチを使った開発
7.1. ブランチを作る
7.2. ブランチを知る
7.3. ブランチを育てる
7.4. ブランチを切り替える
7.5. より高度なブランチの使用
7.5.1. 後からブランチを作る
7.5.2. 変更を持ったままブランチ間を移動
7.5.3. git stashで変更を横にのける
7.6. トピックブランチを使ったワークフロー
7.6.1. トピックブランチ
7.6.2. 統合ブランチ
7.6.2.1. 統合ブランチの準備
7.6.2.2. バグ修正のワークフロー
7.6.2.3. 新規開発のワークフロー
7.6.3. リリースブランチ

Chapter 8 分散環境とブランチとの関連
8.1. 基本パターン
8.1.1. 基本パターンのステップ(1) ― cloneする
8.1.2. 基本パターンのステップ(2) ― ブランチを使って仕事する
8.1.3. 基本パターンのステップ(3) ― 完成したブランチをまとめる
8.1.3.1. マージしてまとめる
8.1.3.2. リベースしてまとめる
8.2. トピックブランチの部分共有
8.2.1. プロジェクトメンバー間でトピックブランチを共有する
8.2.2. 中央の共有リポジトリでトピックブランチを共有する
8.2.3. プロジェクトメンバー各々が公開リポジトリを持つ

Chapter 9 変更履歴を追いかける
9.1. Linus君の究極の内容追跡
9.2. パス名で制限した履歴検索
9.3. マージを単純化した歴史
9.4. コミットを単純化した歴史
9.5. 行範囲変更の検出
9.6. ファイル名変更やファイル内容コピーの検出
9.7. git blame機能
9.8. git guiやgitwebでのgit blameの使用

Chapter 10 パッチべースのワークフロー
10.1. オープンソース
10.1.1. コミットアクセス
10.2. gitでのパッチベースのワークフローサポート
10.3. レビューされるパッチ
10.4. format-patch
10.4.1. サインオフ
10.4.2. format-patchのその他のオプション
10.4.2.1. コミット範囲の指定
10.4.2.2. ファイル名変更パッチ
10.4.2.3. パッチの添付
10.4.2.4. カバーレター
10.5. send-email
10.5.1. send-emailのオプション設定
10.6. imap-send
10.7. rebase
10.7.1. 受け入れられたパッチを除く
10.7.2. パッチの書き直し
10.7.3. パッチの並べかえ
10.7.4. パッチの合成
10.8. am
10.8.1. 変更競合とam
10.8.2. amでパッチが当たらないとき
10.8.2.1. am -Cオプション
10.8.2.2. パッチを編集する
10.8.3. am --signoff
10.9. オープンな開発プロセス
10.9.1. 新参者から重鎮へ
10.9.1.1. あわてて投稿しない
10.9.1.2. あわてて返答しない
10.9.1.3. 議論を丁寧に組み立てる
10.9.1.4. 結論まで考えてから書く
10.9.2. レビューには素直に応える

Chapter 11 ゴミファイルの無視
11.1. gitignoreが使うファイル群
11.2. gitignoreパターンの書式
11.3. gitignoreを使った例
11.4. 無視の意味を間違えない
11.5. 無視パターンの例外
11.6. 不要なファイルを除くのに無視パターンを使う
11.7. git cleanとそのオプション

Chapter 12 構成変数
12.1. 構成ファイルの場所
12.2. 構成ファイルの文法
12.3. よく使う構成変数のまとめ
12.3.1. core.quotepath
12.3.2. core.autocrlf
12.3.3. core.symlinks
12.3.4. core.bare
12.3.5. core.sharedRepository
12.3.6. core.excludesfile
12.3.7. core.editor
12.3.8. core.pager
12.3.9. core.whitespace
12.3.10. alias.*
12.3.11. apply.whitespace
12.3.12. branch.ブランチ名.*
12.3.13. color.ui
12.3.14. remote.リポジトリ名.*
12.3.15. user.*

Chapter 13 リモートリポジトリ定義
13.1. リモートリポジトリ
13.2. リモート追跡ブランチ
13.3. 2つめのブランチを作る
13.4. 2つめのリモートを定義する
13.5. リモート定義の確認
13.6. 1つだけのリモートブランチを追跡する
13.7. リモート定義とトピックブランチ
13.7.1. トピックをリモート追跡ブランチから分岐する
13.7.2. トピックをローカル統合ブランチから分岐する
13.7.3. トピックへの上流からの変更統合
13.7.3.1. 上流が後になってようやく依存条件を満たした場合
13.7.3.2. 上流とトピックとの間に変更競合がある場合
13.7.3.3. 上流でトピックが必要な機能が削除された場合
13.8. メンテナーのワークフロー
13.9. プッシュ用のURL定義
13.10. リモートリポジトリへのプッシュ定義
13.10.1. プッシュするブランチの明示的な指定
13.10.2. プッシュするブランチの定義
13.10.3. マザーシップと衛星
13.11. 歴史探訪
13.12. ファーストフォワード
13.12.1. ファーストフォワードかどうか検査する
13.12.2. ファーストフォワードでない更新を許す

Chapter 14 ファイルアトリビュート
14.1. 空白との戦い
14.1.1. diff --color
14.1.2. diff --check
14.1.3. pre-commit hook
14.1.4. am --whitespace
14.2. ファイルアトリビュート
14.2.1. アトリビュートの指定
14.2.2. アトリビュートによる空白エラー検知の設定
14.2.3. 検知できる空白エラーの種類
14.3. アトリビュートの他の用法
14.3.1. crlfアトリビュートによる行末記号の設定
14.3.2. diffアトリビュートによるパッチ生成の制御
14.3.2.1. カスタムdiffドライバの定義
14.3.2.2. ハンクヘッダの定義
14.3.2.3. 単語区切りの定義
14.3.2.4. バイナリファイルの比較
14.3.2.5. ファイルレベルのマージをカスタマイズ

Chapter 15 歴史の2分探索
15.1. 2分探索のアイデア
15.1.1. git bisectの流れ
15.2. テストできないコミットをスキップする
15.3. 自動テストスクリプトを使う
15.4. git bisectの限界

Chapter 16 間違いからの回復
16.1. ワークツリーにした間違い
16.1.1. インデックスからチェックアウトする
16.1.2. コミットからチェックアウトする
16.1.3. 先回りした変更を退避する
16.1.4. ローカルな変更のせいでマージが開始されない
16.1.5. ローカルマージの変更とローカルな変更とを区別する
16.2. インデックスにした間違い
16.2.1. 無視の意味を間違える
16.3. ブランチにした間違い
16.3.1. 変更を始めるブランチを間違う
16.3.1.1. トピックブランチを始めて記録し、マージする
16.3.1.2. トピックブランチを始めて記録し、チェリーピックする
16.3.1.3. git stashで退避する
16.3.1.4. git checkout --mergeでブランチをチェックアウトする
16.3.2. detached HEAD上に変更を重ねる
16.4. 歴史にした間違い
16.4.1. git reset --hardで最新のコミットを捨てる
16.4.2. git revertでコミットの効果を打ち消す
16.4.3. git rebase -iで歴史を書きかえる
16.4.4. git resetでブランチの先頭を他の時点に移す
16.4.5. 時刻ベースのレフログ指定
16.5. リモートリポジトリにした間違い
16.5.1. ワークツリーのあるリポジトリにpush
16.5.2. 間違ったコミットをプッシュ
16.5.3. 公表したブランチを間違って巻き戻す

Chapter 17 フックメカニズム
17.1. コマンドの実行を禁止するフック
17.1.1. pre-applypatchフック
17.1.2. pre-commitフック
17.1.3. commit-msgフック
17.1.4. pre-rebaseフック
17.1.5. pre-receiveフック
17.1.6. updateフック
17.1.7. pre-auto-gcフック
17.2. コマンドの実行時に便利なデフォルトを与えるフック
17.2.1. applypatch-msgフック
17.2.2. prepare-commit-msgフック
17.3. コマンドの実行後に報告タイミングを与えるフック
17.3.1. post-applypatchフック
17.3.2. post-commitフック
17.3.3. post-checkoutフック
17.3.4. post-mergeフック
17.3.5. post-receiveフック
17.3.6. post-updateフック
17.4. フックになるもの・ならないもの

Chapter 18 リポジトリの出版公開
18.1. ssh経由のアクセス
18.1.1. updateフックによるアクセス制御
18.2. gitosis
18.2.1. gitosisの管理
18.3. git-daemon
18.3.1. git-daemonのオプション
18.4. gitweb
18.5. http経由のアクセス
18.5.1. HTTP pushサポート

Chapter 19 gitの周辺
19.1. GUIツール
19.2. Webツール
19.3. パッチ管理
19.4. ホスティング
19.4.1. ホスティングツール
19.4.2. ホスティングサイト
19.5. リソース

コラム目次
著者と記録者の関係は?
インデックスの何が嬉しいの?
msysGitでのヒント
ログ検索には修飾語が付きません
ブランチ名はどう付ける?
ブランチを理解するコツ
トピックへの統合ブランチの併合
どうしてファイル名変更検知は-Mなの
優秀なプログラマ程非力なマシンで良い?
"Linus does not scale"
マージはパッチになるの?
原作者の証明書
どうして-p1
Thunderbirdのバグ回避
じゃあhello.c~はどう始末する?
上流からのバグ修正は?
マージベースが2つ以上ある歴史もある
pre-commitフックを回避する
機械に読ませるためのバイナリパッチ

ご注文

シェアする

このエントリーをはてなブックマークに追加

関連書籍

同じジャンルの商品

お知らせ

一覧