独習Git

Gitを始めるためのおすすめ書籍 – 6冊を紹介!も確認する

前書き

数年前、ギターの弾き方を教えるビデオを見ているとき、素晴らしい表現を開いた。複雑な「かき鳴らし」(strumming)パターンのデモンストレーションを、その曲の正しいテンポで、信じられないくらい速く弾いてから、インストラクターが言った。「どうやってるのかわかるように、ゆっくり弾いてみますけれど、それって難しいんです。ゆっくり落ちるのが難しいみたいにね」これが気に入った。

「ゆっくり落ちる」というのが。そういえばGitのデモンストレーションも、信じられないくらい速く見えることがある。デモはしばしばコマンドラインで行われるから、なおさらのように見える。一連のコマンドで実際、何が発生しているのかを、理解できないのだ。
私は、この本でも「テンポ」を落とそうと思う。Gitと相互作用(インタラクション)を行うとき、実際には何が起きるのか、ひとつひとつすべてのステップを観察し、考察できるようにしよう。

このアプローチを採用したのには理由がある。私はGitのプレゼンテーションを、いくつものローカルユーザーグループで行ってきたのだが、個々のコマンドが何を行っているのかを質問されることが多いのだ。プレゼンテーションではそれぞれの質問に対応するのが難しいけれど、一冊の本でならじっくり細部を探索できるというわけだ。
もうひとりのギタリストからも(YouTubeで見たのだが)賢いアドバイスを受け取った。どんな曲でも、正しいテンポで演奏する前に、まずはずっとずっとゆっくり学ぶべきなのだ。ゆっくりやっているうちに、指が正しい動きかたを覚えてくれる。そうして確信を得たあとで、はじめて曲を徐々にスピードを上げて演奏できるのだ。これも気に入った。「ものごとは、ゆっくり学びなさい」Gitのドキュメントに入っているチュートリアルは、詳細を短い段落で説明しているが、この本のアプローチは正反対だ。チュートリアルがただひとつの文で説明している事項に、この本はまるまる1章を費やす。1個のコマンドについて、じっくりと学び、確信を得たらそれを次に使うときもっと速くできるはずだ。
私は、おもに顧客を相手にする仕事で、長いキャリアを過ごしてきた。テクニカルサポートやオンサイトのコンサルティングやトレーニングの仕事だが、そうして人に話をすることで私は学んだ。簡単には理解できないような技術的な詳細を普通の人に落ち着いて聞いて貰えるようにするには、「スピードを落とす」ことがじつははかどる秘訣なのだ。この本は、そのアプローチを採用した結果である。

リック・ウマリ (著), 吉川 邦夫 (翻訳)
出版社: 翔泳社 (2016/2/26)、出典:出版社HP

この本について

本書は、「コーディングのプロだけれど、ソースコードの管理またはGitについては初心者」という人々を主な対象としています。コーディングというのは、コンピュータプログラムだけでなく、CSSファイルやHTMLファイルも含めてですが、その種のコードをファイルにタイプする人ならば誰でもGitを学ぶことによって「自分の仕事を追跡管理できる」という恩恵が得られるでしょう。この本で扱うのは、初心者レベルから中級までのトピックです。
バージョン管理システムに関する知識は、プロの開発者には当然のことと思われがちです。しかし本書は、Git以外のバージョン管理システムに関する知識を前提としていません。実際、この本はGitを「Gitの言葉」で説明するので、他のバージョン管理システムに言及することはしていません。

著者は、あなたがコマンドラインで快適に仕事ができることを願っていますが、もしそうでなくても心配は無用です。ひとつひとつのコマンドを丁寧に説明していきます。そのうちに、あなたはだんだんこのスキルに慣れ、快適になっていくはずです。また、この本ではGitを使いやすくする様々なGUIも紹介します。

もしあなたが本当の初心者ならば、最初の章から順番に読んでください。それぞれの章は、毎日のランチアワーに読めるように書いてあります。その1時間で章のテキストを読み、その章の「演習」というコラムもこなせるでしょう。また、各章の末尾にある「課題」は、その章のポイントを補強するものですが、お暇なときの復習にも使えます。

「演習」には時間をかけてください。これらを実際に行うことで、Gitをより良く理解できるでしょう。それぞれの意であなたが作業するリポジトリは、まったくあなた自身の持ち物です。それぞれの章で安全に実験できる環境あるいは状況を作成します。一部の章で、リポジトリを「既知の作業状態」に作り直すには、本書のWebサイトhttp://www.manning.com/umaliからダウンロードできるコード(SourceCode)を使えます。
それぞれの章に、イラストレーションやスクリーンショットを大量に入れてあります。Gitがあなたのコードと履歴(ヒストリー)をどのように組織して管理するかを示すために、概念図も入れてあります。これらの図をゆっくり見ながら、課題を解くのにGitをどう使えばよいのか考えてみてください。末尾には、その章で使ったGitコマンドのリストを添えてあります。

章はグループに分けてあります。基本のトピック、中殺のトピック、高度なトピック、ブランチとマージ、共同作業、そしてGitのエコシステムという順番になっています。これらのグループ分けについては、第1章で概要を説明します。章によっては、それ以前の章を前提としている内容もあります。もしあなたが初心者ではなく、最初の部分を読み飛ばすことにしたら、その点にご注意ください。

第1章から第6章で扱う基本のトピックには、リポジトリをセットアップする方法、リポジトリにファイルを追加しコミットする方法、リポジトリの状態を問い合わせ、履歴を見る方法が含まれます。ひとりで開発する方なら、たぶん必要な事項の8割はこれらの章で間に合うでしょう。

中級のトピック(第7章と第8章)では、Gitのステージングエリアに注目し、あなたのリポジトリの各部をアクセスする方法も学びます。高度なトピック(第15章と第16章)では、リポジトリの履歴を問い合わせるための、また履歴を操作するための興味深い方法を伝授します。ブランチとマージを扱う第9章と第10章では、Gitの最も重要な特徴のひとつである「素早いブランチ」の使い方を詳しく説明します。この2章を読んだら、あなたのコードベースにある何かに実験的なブランチを落なく気軽に作れるようになるでしょう。

第11章から第14章では、Gitの共同作業(collaboration)コマンドを正しく使って他の人々と協力する方法を説明します。もしあなたが、プッシュとプルについて混乱したことがあったとしても、これら4章を読めば、すっきりと理解できるはずです。

Gitのエコシステムに関する3つの章(第17章、第18章、第19章)では、サードパーティ製ツール、ユーザーインタフェース、そしてGitHubについて学びます。Gitを使いやすくするユーザーインタフェースやツールによってGitは多くのユーザーを獲得しましたが、もっと広く、オープンソースコミュニティ全般にGitが普及したのは、GitリポジトリをホスティングするGitHubの功績です。

最後の第20章では、あなたの環境に合わせてGitをカスタマイズする方法を示します。これを最後にもってきたのは、何か新しいシステムを学ぶにはそのデフォルトの初期設定で使うのが早道だと信じているからです。とはいえ、本書を読んでいる途中で、この章をざっと見ておくのも便利かもしれません。

リック・ウマリ (著), 吉川 邦夫 (翻訳)
出版社: 翔泳社 (2016/2/26)、出典:出版社HP

目次 – 独習Git

前書き
この本について
謝辞
第1章:はじめに
1.1 Gitの特徴、
1.2 この本の対象は?
1.3 この本の読み方
1. 4Gitのインストール
U nix / Linux/ Mac /Windows
1.5 学習経路 (Learning Path)
1. 6オンライン・リソース
1.7 即座に効果を上げる

第2章:Gitとバージョン管理の概要」
2.1 バージョン管理の諸概念
ソフトウェア開発者のバージョン管理
組におけるバージョン管理 .
リポジトリとは何か
コミットとは何か
ブランチとは何か
2.2Gitの主な特徴
分散されたリポジトリ
素早いブランチ.
ステージングエリア Git高速ツアー
GUIでリポジトリを見る。
コマンドラインでリポジトリを見る
2.4 バージョン管理の用語

第3章:Gitに馴染む
3.1 最初の設定
3.2 コマンドを使う
Gitのコマンドライン構文
共通コマンド .
3.3 コマンドラインの効率を高める
3.4 Gitヘルプを使う
3.5 長い出力をページャーで制御する
3. 6 課題
3.7 さらなる探究
3.8 この章のコマンド

第4章 リポジトリの作り方と使い方
4.1 リポジトリの基礎を理解する
4. 2git initで新しいリポジトリを作る
4. 3git statusとgit addでファイルを追跡する
git statusでリポジトリの状態をチェックする.
git oddでファイルをリポジトリに追加する
4. 4git commitでファイルをコミットする
4. 5 git logとgit ls-filesで、リポジトリを調べる
4. 6課題
4.7 この章のコマンド

第5章:GUIでGitを使う
5.1 Git GUIを起動する。
WindowsでGit GUIを起動する….
5.2 Git GUIでリポジトリを作る。
5.3 Git GUIでファイルをリポジトリに追加する
5. 4履歴を見る
5. 5 課題
5.6 さらなる探究」
Git用の、その他のGUI
Tol とTk とWish
5.7 この章のコマンド。

第6章:ファイルの追跡と更新
6.1 単純な変更を行う
新しいリポジトリを作る…
変更をGitに知らせる。
「どこが違うのか」を見る
変更をリポジトリに追加・コミットする
6.2 git oddについて考える
たとえ話によるステージングエリアの紹介。
変更をステージングエリアに追加する一
ステージングエリアの更新…
ステージングエリアを理解する
変更をコミットする
6.3 複数のファイルを追加する。
6. 4課題
コマンドラインのニュアンスを理解する…
トラブルを切り抜ける。
自分のファイルを追加する…
6.5 さらなる探究
6.6 この章のコマンド

第7章:変更箇所をコミットする
7.1 Gitからファイルを削除する
7.2 Gitでファイル名を変更する。
7.3 リポジトリにディレクトリを追加する
7.4 変更箇所を追加する。
ステージのたとえ話を考え直す
いつコミットすべきかを考える.
Git GUIを使って、ファイルを部分的にコミットする
git add-pを使ってファイルを部分的にコミットする
ステージングエリアから変更を削除する.
ファイルを最後にコミットしたバージョンに戻す
部分的にコミットした結果を理解する
7. 5課題
複数のハンクを使う作業..
削除を取り消す。
課題図書
7.6 この章のコマンド

第8章:Gitというタイムマシン
8. 1 git logを使う
SHA1 IDを使う
コミットのメタ情報と親子関係を調べる
gitkでコミットの履歴を見る
ファイルでコミットを検索する
各種のgit logを使
8.2 適切なコミットログメッセージを書く
8.3 特定のバージョンをチェックアウトする
HEAD、masterなどの名前を理解する
gitcheckoutで時間を測る
8. 4以前のバージョンにタグを付ける
8. 5 課題
ヒストリーを見る(第1部)
直前のコミットを修正する
別の形式でコミットを指定する
「detached HEAD」状態でコミットする
タグを削除する….
ヒストリーを見る(第2部)
8.6 さらなる探究」
8. 7この章のコマンド

第9章:ブランチ (支線)を辿る
9. 1ブランチの基礎
リファレンスの作成
「master は単なる例です」
9. 2いつ、どうやってブランチを作るか
ブランチで新しいコードを入れる
ブランチで修正を入れる
9.3 その他のブランチ操作を実行する
より高速なブランチ
ブランチの削除
9.4 ブランチを安全に切り替える
作業をスタッシュにする
スタッシュをポップする
9.5課題
GUIを使ってプランチの作業をする
頭の準備運動
another_fix_branchで作業を続ける
複数のブランチを見る
9. 6さらなる探究
9. 7この章のコマンド
第10章ブランチをマージ(統合)する
10.1 マージを「合流」に見立てる
10.2 マージを実行する
少なくとも2本のブランチから
本のブランチの差分をチェックする
マージを実行する
マージコミットの親
Git GUIでマージを実行する
10.3 マージの競合に対処する
Gitが対処できない差分を理解する
競合するハンクを直接編集してファイルをマージする
マージツールでファイルをマージする
マージを中止する
10.4 fast-forwardマージを実行する
「直系の子孫」という概念を理解する
fast-forwardマージを行う
10.5課題
10.6 さらなる探究
git merge-baseでマージのペースを算出する
競合の表示方法を変更する (merge.conflictStyle)
オクトパスマージを実行する。
10.7 この章のコマンド

第11章:クローン(複製)を作る
11.1 複製:ローカルなコピーを作る
git cloneを使う
複製の中でブランチを見る
ブランチをチェックアウトする
11.2 ベアリポジトリを使う作業
Gitリポジトリのファイルを見る
git cloneでペアリポジトリを作る
ベアリポジトリからのクローニング
11.3 git ls-treeでリポジトリ内のファイルを見る
11.4課題
11.5 さらなる探究
11.6 この章のコマンド.

第12章 リモートとの共同作業
12.1 リモートは遠く離れた場所
git remoteで複製元を分析する
リモートの名前を変える…..
リモートを追加する…
12.2 リモートを調査する
12.3 遠く離れた場所からクローンを作る
12.4課題
あなたのmath githubクローンを調べる…..
手作業でリモートを作る。
git remoteのその他のサブコマンドー
Git GUIで複製を作る…
もうひとつのリモートURLをアクセスする…
12.5 さらなる探究
12.6この章のコマンド

第13章変更をプッシュ(送出)する
13.1 プッシュは変更をリモートに送り出す
バーミッションが必要です
ブッシュにはブランチとリモートが必要
gitpushの成功を確認する
13.2 プッシュの競合を理解する
13.3 ブランチをプッシュする.
13.4 リモートにあるブランチを削除する
13.5 タグのブッシュと削除
13.6 プッシュをsimpleに設定する。
13.7 課題
13.8 さらなる探究
13.9 この章のコマンド

第14章同期を保つ (ブル)
14.1 共同作業のサイクルを完結させる
14.2git pullを使う(2部構成)
リモートリポジトリからファイルを取得する(git fetch)
2本のブランチをマージする(git merge)
14.3 git pullのマージ
きれいなマージー
自動的にコミットされないクリーンマージ—
自動的にコミットされるクリーンマージ –
競合するマージ
14.4 ブルをfast-forwardに限定する。
14.5 pullの代わりにfetchとmergeを使う
14.6課題
14.7 この章のコマンド

第15章:ソフトウェア考古学
15.1git logを理解する
git logの基本(復習)
コミットの表示を制限する
git logで差分を見る
gitname-revでコミットの名前を得る。
15.2gitkのビュー編集を理解する
gitkに特定のブランチだけ表示させる
簡易なピューを使う
15.3 ファイルを調べる
関連するファイルを探す(git grep)
特定のファイルの履歴を調べる
15.4 コードの特定の行を更新したリビジョンを探す
git blameをGUIで実行する
コマンドラインでgit blameを使う
15.5 あとから来る人のためにメッセージを残す
15.6課題
15.7 さらなる探究
15.8この章のコマンド

第16章igit rebaseを理解する
16.1git rebaseの2つのユースケース、
git rebaseを使って上流の更新に対応する
git rebaseで履歴を整理する
16.2 第1のケース:上流に追いつく
16.3git reflogとgit resetを使ってリポジトリを元に戻す
16.4 第2のケース:履歴を整理する
16.5 課題
16.6 さらなる探究
チェリーピッキング
コミットの削除
16.7 この章のコマンド

第17章:ワークフローとブランチの規約
17.1Gitに必要な規約
コミットの規約
コードのブッシュに関する規約
ブランチの規約
リペースの利用に関する規約。
タグ付けの規約
17.2 Gitの2つのワークフロー
17.3git-flow
featureブランチを作る
releaseプランチを作る.
17.4 GitHubのフロー
17.5課題
17.6 さらなる探究
17.7 この章のコマンド

第18章GitHubを使う
18.1 GitHubの基本を理解する
GitHubアカウントの作成.
リポジトリを作る
リポジトリとの対話処理
18.2 フォークを使う
GitHubでフォークを作る
自分のフォークを複製する
18.3プルリクエストによる共同作業
フォークに変更を加える
ブルリクエストを発行する
プルリクエストをクローズする
18.4課題
18.5 さらなる探究
18.6 この章のコマンド

第19章・サードパーティ製ツールとGit
19.1 SourceTree
SourceTreeをインストールする
リボジトリをSourceTreeに追加する
ファイルをステージングする
SourceTreeでGitコマンドを追跡する
SourceTreeでファイルをコミットする
「ログ」表示
19.2 Git Eclipse IDE
Eclipseをインストールする
リポジトリをEclipseに追加する
ファイルのステージングとコミット
「ヒストリー」ビュー
19.3 その他のサードパーティ製ツール
19.4課題

第20章:Gitを研ぎすませる
20.1git configコマンドの紹介
Gitの構成変数を使う
Git構成の優先順位を理解する
Gitの構成を一時的に設定する
Gitの構成を永続的に設定する
Gitの構成をリセットする
20.2 Git構成ファイル
Git構成ファイルを編集する
Git構成ファイルの構文
20.3 Gitのデフォルトエディタを設定する
20.4無視すべきファイルの設定
20.5 Gitの学習を続ける
クローンで作業する
ヘルプを使う
こまめにコミットする
共同作業を行う
20.6課題
20.7 この章のコマンド
索引

リック・ウマリ (著), 吉川 邦夫 (翻訳)
出版社: 翔泳社 (2016/2/26)、出典:出版社HP