gitのおさらい

gitについて忘れた時に見直す忘備録。。

[Git入門編](https://paiza.jp/works/git/primer/beginner-git1/)

<h4>01:バージョン管理を理解しよう (2:55)</h4>
Gitは、プログラム開発の作業履歴を記録するツール

- コードの変更を記録 （add, commit）
- 状態や変更箇所を確認 （log, diff）
- 前の状態を復活 （reset, revert）
- 作業箇所を分岐 （branch, checkout）
- 作業結果を統合 （push, merge）
- [【連載】マンガでわかるGit｜CodeIQ MAGAZINE]
https://codeiq.jp/magazine/category/git-ai/

- [ザリガニが見ていた...。アリスとボブのGit]
http://d.hatena.ne.jp/zariganitosh/20120921/1348186638

- [git入門 (全22回) - プログラミングならドットインストール]
http://dotinstall.com/lessons/basic_git

- [Git ユーザマニュアル (バージョン 1.5.3 以降用)]
https://img.atwikiimg.com/www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html

- [Git ユーザマニュアル Git Quick Reference]
https://img.atwikiimg.com/www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html#git-quick-start

- [Git - Book]
https://git-scm.com/book/ja/v2

- [知って「おっ！」てなったGitHubの知識7選 - Qiita]
https://qiita.com/ukiuni@github/items/56ff7dd04c1c2748fbbb

- [Git、GitHubを教える時に使いたい資料まとめ - Qiita]
http://qiita.com/yuyakato/items/41751848add5dfd5289c



02:リポジトリを作ろう (3:40)
ここでは、Gitを使い始める準備として、開発作業の履歴を記録する保管スペースを用意します。この保管スペースを「リポジトリ」と呼びます。
・基本のシェルコマンド
カレントディレクトリを表示する
pwd

ファイル一覧を表示する
ls

隠しファイルも含めて、ファイル一覧を表示する
ls -a

・Gitの基本コマンド

オプションを付けないで実行すると、簡易ヘルプが表示される
#git

バージョンを表示する
#git --version

・ユーザー情報を登録する
名前とメールアドレスを登録する。作業履歴の記録時に、この名前が使われる。

#git config --global user.name "kirishima"
#git config --global user.email "kirishima@paiza.jp"

登録情報を確認する。

#git config --list

リポジトリを作成する
myworkディレクトリを作って、そこにリポジトリを作成する。
作業履歴は、このディレクトリの「.git」という隠しディレクトリに記録される。

#mkdir mywork
#cd mywork
#git init


03:リポジトリにファイルを追加してみよう (5:39)
ここでは、Gitでファイルの追加を記録する方法を学習します。ディレクトリにファイルを追加して、その変更をリポジトリに記録してみましょう。







04:もう一度、コミットしてみよう (4:36)
ここでは、複数のファイルをまとめてコミットします。
そして、コミットするときに便利ないくつかの機能を試します。







05:作業履歴を確認する (6:35)
ここでは、記録した作業履歴を確認する方法を学習します。
いつ、どんなコミットをしたのか。その修正でどこが変わったのか、確認する方法を理解しましょう。








06:作業履歴を取り消そう (4:51)
ここでは、これまでの変更を取り消しして、前の状態を復活させる方法を学習します。
ここまでの操作を身に付ければ、自分でも、とりあえずGitが使えるようになりますよ。







07:ブランチを作って作業しよう (4:02)
ここでは、作業内容に合わせてリポジトリを分岐できる「ブランチ」について学習します。
ブランチを使うと、機能の追加やバグの修正といった作業内容に合わせて、
コードを複製したりまとめたりすることが簡単にできるんですよ。








08:ブランチにコミットしよう (3:28)
ここでは、引き続き、作業内容に合わせてリポジトリを分岐できる「ブランチ」について学習します。
先ほどのチャプターで、ブランチを作って切り替えたので、ファイルを修正して、masterにマージしてみましょう。








09:ブランチをマージしよう (4:53)
ここでは、ブランチで変更した内容を別のブランチに統合する方法を学習します。 
具体的な例として、「add_html」ブランチで行った変更を「master」ブランチに統合してみましょう。








10:衝突を解決しよう (3:25)
ここでは、ブランチを統合したとき発生する衝突を解決する方法を学習します。
先ほどのチャプターで発生した、「master」ブランチと「add_html」ブランチの衝突を解消して、
コードを正常にする手順を試してみましょう。

・衝突の状態を確認する
#git status

衝突個所の表示
衝突しているファイルをエディタで開くと、衝突個所が次のようになっています。
不等号で囲まれた部分が、衝突している個所です。修正するには、どちらかを選ぶか、
新しいコードを記述します。今回は、新しいコードに書き換えてしまいましょう。
不等号やイコールの行も削除しましょう。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>hello git</title>
  </head>
  <body>
    <h1>hello git</h1>
<<<<<<< HEAD
    <p>ここはmasterです。</p>
=======
    <p>ここはadd_htmlです。</p>
>>>>>>> add_html
  </body>
</html>

修正した内容をコミットする
衝突したファイルを修正できたら、仮登録してコミットします。

コミットすると、自動的にエディタが立ち上がり、コミットメッセージと衝突の情報が入力されています。

そこで、「:wq」で、このままメッセージを保存しましょう。

git add index.html
git commit

 簡単なvimの使い方
vimは、シェルで利用できるテキストエディタです。

Gitでコミットしようとすると、コミットメッセージの入力のために、自動的に起動します。

次のように、コマンドモードと編集モードを切り替えて使用します。

編集モードに切り替える
- a 現在のカーソル位置の右から入力する
- A 現在の行の末尾に入力する

コマンドモード
- 編集モードからコマンドモードに切り替える
- u 元に戻す
- :wq 保存して終了
- :q! 保存しないで終了



11:プロジェクトをクローンしよう (4:26)
ここでは、他のメンバーと共同開発しているプロジェクトに参加する方法を学習したいと思います。
まずは、共同プロジェクトのリポジトリをローカルに複製してみましょう。

・共同リポジトリを複製する
#mkdir neko_work
#cd neko_work
#git clone /tmp/project_A.git

・複製した共同リポジトリの情報を表示する
#git remote -v

・コミットを共同リポジトリに反映する
#git push origin master


・簡単なvimの使い方
vimは、シェルで利用できるテキストエディタです。
Gitでコミットしようとすると、コミットメッセージの入力のために、自動的に起動します。
次のように、コマンドモードと編集モードを切り替えて使用します。
編集モードに切り替える
- a 現在のカーソル位置の右から入力する
- A 現在の行の末尾に入力する

コマンドモード
- 編集モードからコマンドモードに切り替える
- u 元に戻す
- :wq 保存して終了
- :q! 保存しないで終了

12:プロジェクトの変更を取り込む (3:33)
ここでは、他のメンバーと共同開発しているプロジェクトで、リポジトリを利用する方法を学習します。
先ほどのチャプターの続きとして、すでに複製してあるリポジトリで、
他のメンバーの修正内容を取り込んでみましょう。

・変更を取り込む
#git pull /tmp/project_A.git

・コミットをリモートリポジトリに反映する
#git push origin master