ウラジミール・ガジャ 著
長尾 高弘 監修
もともとLinuxOSの大規模プロジェクトの、ソースコード管理ツールとして生まれたGit(ギット)は、いまや開発者にとどまらず、デジタルコンテンツを操作するプロジェクトなら、デザインやエディトリアルの現場でも導入されるほどポピュラーなものになりました。
とはいえ、開発者目線のツールですから、その考え方や操作方法、テクニカルタームなどはなかなか理解しにくく、難解なイメージを与えます。
とくに、日々の業務で同じようにGitを使用するだけならいいのですが、イレギュラーな操作が必要になったり、いつもどおりやったつもりでミスをしてエラーを吐かれたりすると、一気にお手上げ状態になります。
そこで本書では、そもそもの使い方から、Gitを使っているときに遭遇しがちなエラーの対処法、より有用な設定ファイルの書き方、使い続ける上で留意しておくべきポイントなどを、Q&A形式で詳解します。
「仕事でGitを使っていて、とりあえず使い方はレクチャされたけど、このエラーはどうすればいいの」という、Gitユーザーにおすすめです。
1章 Git を始めよう
recipe 1.0 Git とは何なのか
recipe 1.1 WindowsにGit をインストールする
recipe 1.2 LinuxにGit をインストールする
recipe 1.3 OS XにGit をインストールする
recipe 1.4 マニュアルを見る
recipe 1.5 Git のコンフィグレーション
2章 よく知られているリポジトリを操作する
recipe 2.1 GitHubにホスティングされているリポジトリのクローンを作る
recipe 2.2 Bitbucketにホスティングされているリポジトリのクローンを作る
recipe 2.3 ローカルリポジトリのクローンを作る
recipe 2.4 ローカルリポジトリをコピーする
recipe 2.5 Git リポジトリの内容を探る
recipe 2.6 作業ディレクトリの内容を削除、復元する
recipe 2.7 ベアリポジトリをクローニングする
recipe 2.8 git log コマンドで履歴を探る
recipe 2.9 git log/shortlog コマンドでリポジトリを分析する
recipe 2.10 レシピ2.8、2.9で使ったコマンドのエリアスを定義する
recipe 2.11 人気のあるリポジトリを分析する
recipe 2.12 リポジトリの履歴情報をビジュアライズする
recipe 2.13 git ディレクトリを削除する
recipe 2.14 まとめ
3章 線形の履歴情報からローカルリポジトリを作る
recipe 3.1 最初のリポジトリを作る
recipe 3.2 git snapshot というエリアスを作る
recipe 3.3 日常の仕事でgit snapshot エリアスを使う
recipe 3.4 名前をマッピングする
recipe 3.5 git reset でリビジョンを復元する
recipe 3.6 git checkout でリビジョンを復元する
recipe 3.7 git s というエリアスを作る
recipe 3.8 reflog を操作する
recipe 3.9 既存のプロジェクトのなかに新しいリポジトリを作る
recipe 3.10 コミットしていない変更を消す
recipe 3.11 git simple-commit というエリアスを作る
recipe 3.12 コミットを緩和する
recipe 3.13 まとめ
4章 ファイルを管理する
recipe 4.1 新しいファイルをステージングしてコミットする
recipe 4.2 変更されたファイルをステージングしてコミットする
recipe 4.3 変更されたファイルをコミットする
recipe 4.4 削除されたファイルをステージングしてコミットする
recipe 4.5 標準のrmコマンドで削除されたファイルをコミットする
recipe 4.6 未変更ファイルを追跡されていないファイルに変換する
recipe 4.7 git mvで名前を変更したファイルをステージングしてコミットする
recipe 4.8 標準のmv コマンドで名前を変更したファイルをコミットする
recipe 4.9 すべてのファイルをステージングする
recipe 4.10 複合的な状態を操作する
recipe 4.11 まとめ
5章 ブランチ
recipe 5.1 ブランチを作ってブランチの切り替えをする
recipe 5.2 ブランチのあるリポジトリのクローンを作る
recipe 5.3 ブランチ付きクローンのエリアスを作る
recipe 5.4 detached HEAD 状態でコミットする
recipe 5.5 ブランチをリセット、クリアする
recipe 5.6 矛盾を起こさずにダーティリポジトリのブランチを切り替える
recipe 5.7 ダーティなリポジトリで矛盾が起きるような形でブランチを切り替える
recipe 5.8 誤ったブランチにコミットする
recipe 5.9 ローカルブランチを削除する
recipe 5.10 バックアップとしてブランチを使う
recipe 5.11 ブランチの名前を変える
recipe 5.12 別のブランチのファイルをチェックアウトする
recipe 5.13 ベアリポジトリでブランチを切り替える
recipe 5.14 まとめ
6章 ブランチをマージする
recipe 6.1 ブランチで新しい機能を実装する
recipe 6.2 ブランチをfast-forward マージする
recipe 6.3 fast-forward を取り消す
recipe 6.4 並行して変化するブランチを作る
recipe 6.5 分岐したブランチをマージする
recipe 6.6 fast-forward マージを避ける
recipe 6.7 複数のブランチの分岐
recipe 6.8 複数のブランチをマージする
recipe 6.9 まとめ
7章 ブランチをリベースする
recipe 7.1 分岐しているブランチをリベースする
recipe 7.2 分岐したブランチをマニュアルでリベースする
recipe 7.3 分岐しているブランチを統合して線形の履歴を作る
recipe 7.4 3 つのブランチに分岐させる
recipe 7.5 部分的なリベース
recipe 7.6 分岐しているブランチのためにバルブを作る
recipe 7.7 サブブランチにバルブを作る
recipe 7.8 バルブを使ってブランチをリベースする
recipe 7.9 マージを維持した形でリベースする
recipe 7.10 まとめ
8章 履歴を書き換える
recipe 8.1 もっとも新しいリビジョンを修正する
recipe 8.2 最新のn 個のリビジョンを削除する
recipe 8.3 多くのリビジョンを1 つのリビジョンに圧縮する
recipe 8.4 1 つのリビジョンを多数のリビジョンに分割する
recipe 8.5 リビジョンの順序を変える
recipe 8.6 複数のリビジョンを削除する
recipe 8.7 古いリビジョンを編集する
recipe 8.8 リビジョンの効果を打ち消す
recipe 8.9 マージコミットの効果を打ち消す
recipe 8.10 リビジョンをcherry-pick する
recipe 8.11 ブランチを圧縮する
recipe 8.12 打ち消したブランチを改めて使う
recipe 8.13 まとめ
9章 矛盾を解決する
recipe 9.1 テキストファイルに矛盾となる変更を加える
recipe 9.2 マージ中のテキストの矛盾を解決する
recipe 9.3 リベース中のテキストの矛盾を解決する
recipe 9.4 バイナリファイルに矛盾となる変更を加える
recipe 9.5 マージ中のバイナリの矛盾を解決する
recipe 9.6 リベース中のバイナリの矛盾を解決する
recipe 9.7 マージ中に強制的にバイナリモードを使う
recipe 9.8 まとめ
10章 リモートリポジトリと同期
recipe 10.1 マニュアルでクローンを作る
recipe 10.2 一元管理リポジトリを使って共同作業をする
recipe 10.3 1回のコミットで(n-1個の)マージコミットを生成する
recipe 10.4 履歴を線形に保つ
recipe 10.5 一元管理リポジトリを設けずに共同作業をする
recipe 10.6 リモートブランチを操作する
recipe 10.7 コントリビュートするためにリモートブランチを使う
recipe 10.8 コントリビューションを受け入れる
recipe 10.9 リモートブランチにコミットを追加する
recipe 10.10 $ git push -f で履歴を書き換える
recipe 10.11 リモートブランチの仕事を終わらせる
recipe 10.12 ノンベアリポジトリへのプッシュ
recipe 10.13 まとめ
11章 Git リポジトリをホスティングする
recipe 11.1 VirtualBoxとVagrant をインストールする
recipe 11.2 仮想Linux を実行する
recipe 11.3 仮想マシンでGit をコンパイルする
recipe 11.4 ssh を介してGit リポジトリをホスティングする
recipe 11.5 authorized_keysでssh の権限付与を単純化する
recipe 11.6 GitデーモンでGit リポジトリをホスティングする
recipe 11.7 HTTPでGit リポジトリをホスティングする
recipe 11.8 Gitweb CGI アプリケーションを使う
recipe 11.9 cgit CGI アプリケーションを使う
recipe 11.10 gitolite を操作する
recipe 11.11 まとめ
12章 github.com を操作する
recipe 12.1 GitHub アカウントを作る
recipe 12.2 GitHubアカウントで使うSSH キーを設定する
recipe 12.3 新しいプロジェクトのためにGitHubをホストとするリポジトリを作る
recipe 12.4 既存のプロジェクトのためにGitHubをホストとするリポジトリを作る
recipe 12.5 GitHub に組織のアカウントを作る
recipe 12.6 組織がホスティングする新しいプロジェクトを作る
recipe 12.7 プル要求を送る
recipe 12.8 プル要求のやり直し
recipe 12.9 プル要求を受け入れる
recipe 12.10 まとめ
13章 その他のレシピ
recipe 13.1 $ git diff コマンドを操作する
recipe 13.2 改行変換をせずにファイルをコミットする
recipe 13.3 改行変換をせずにファイルをチェックアウトする
recipe 13.4 チェックアウトと変更のコミットのときに、作業ディレクトリでは改行がCRLF になるように変換する
recipe 13.5 改行をLF に変換して変更をコミットする
recipe 13.6 すべての改行が意図せず変換されてしまわないようにする
recipe 13.7 ファイル、ディレクトリごとに改行を定義する
recipe 13.8 自動生成ファイルを無視する
recipe 13.9 dist ファイルでプロジェクトをカスタマイズする
recipe 13.10 .git/info/exclude ファイルを使う
recipe 13.11 タグを使う
recipe 13.12 圧縮アーカイブにリポジトリをエキスポートする
recipe 13.13 まとめ
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
とんび さん
2015-08-02
エイリアスのことをエリアスって書いてある… コードの種類(コマンドかパラメータか)によってボールドやイタリックへ文字を変えてないので、一見して書き換えて使う部分なのか規定の部分なのかわからない。 専門用語の解説タイミングがずれてたり、そもそもなかったり。 などなど、非常に頭に入って来づらい。 いわゆる逆引き形式で書いてあるのだが、この形式自体が便利だと思ったことが一度もない。 本のタイトルからして、チートシートの類は付けて欲しかったところ。
Aoki Kohei さん
2019-03-22
分かりづらいポイントがいくつか。 ・書籍内で作ったエイリアスを元に設定しており、途中から読むとエイリアスなのかgit標準コマンドなのか分かりづらい。 ・コマンドを、コード用の小窓(?)で表現してたり、通常の文中で記述していたりして見づらい。その章で紹介したいであろうコマンドも文中で記述されているのはかなり読みづらいと思う。