はじめてのGitとGitHub
GOAL
gitを理解した上で、gitを用いてソースコードをGitHubにアップ出来るようになる。
Section1
1. Gitとは何か、Gitで出来ること。
Gitはバージョン管理システム
ファイルのバージョンを管理出来る
あなたのパソコンこんな感じでファイル管理されてませんか。。?

また複数人で編集すると、いつ誰が編集したかわからなくなってしまう。
バージョン管理することで、いつ誰がどのファイルを変更したのかが把握出来る。
また、元に戻すことも出来る。
2. Gitの仕組み
いつ誰が何を変更したのかが把握でき、メッセージをつけられる。
・変更履歴を順々に記録出来る。
・記録する際はメッセージをつけられる。

流れ
コミット:自分のファイルの変更を記録する
push:pushして共有リポジトリに変更を登録
pull:変更されたファイルを取得(落としてくる)

3. GitHubの仕組み
・gitリポジトリのホスティングサービス
・変更履歴をオンライン上で預かってくれるもの
・Gitで管理されているファイルを見やすくweb上で見れるツール
・コードを保管してくれる
特徴
・プルリクエスト
コードの修正の取り込みをリクエスト出来る
また、修正依頼やコードレビューなども出来る
Section2
1. Gitのインストール
※macにはデフォルトでGitが入っている
ターミナルを開いてGitが入っているかを確認する
確認コマンド
[~] git version

私の場合なぜかエラー
[~] git version
Agreeing to the Xcode/iOS license requires admin privileges, please run “sudo xcodebuild -license” and then retry this command.
↑下記記事参考にして使えるように
https://4to.pics/article/post/83
[~] git version
git version 2.13.5 (Apple Git-94)
インストールは下記のリンクから
https://git-scm.com/downloads
2. GitHunの登録
3. Gitの初期設定
さっきGithubに登録したアカウントを登録する
・ユーザー名を登録
git config --global user.name *****
・メールアドレスを登録
git config --global user.email *****@gmail.com
Section3
1. GitとGitHubでバージョン管理する
①バージョン管理するファイルを作成
今回はデスクトップにファイルを作成

作成したファイルの中に、テキストファイルを作成
中身はなんでもOK


このファイルをバージョン管理する!
②Gitリポジトリを作成
リポジトリとはファイルやディレクトリの状態、変更履歴を記録する場所。
作成コマンド
git init
上記のコマンドで何が行われているかというと。。
git initで.gitディレクトリが作成され、管理ファイルが作成され、そこで変更履歴が保存されている。

実際に作成してみる
[~] pwd 8:53:47 ☁ master ☂ ✭
/Users/hatamiki
[~] cd Desktop 9:13:52 ☁ master ☂ ✭
[Desktop] cd intro_git 9:14:06 ☁ master ☂ ✭
[intro_git] ls 9:14:21 ☁ master ☂ ✭
first.txt
[intro_git] git init 9:14:28 ☁ master ☂ ✭
Initialized empty Git repository in /Users/hatamiki/Desktop/intro_git/.git/
[intro_git] ls -a 9:14:39 ☁ master ☂ ✭
. .. .git first.txt
[intro_git] ls -a .git 9:14:49 ☁ master ☂ ✭
. .. HEAD branches config description hooks info objects refs
2. Gitの基本的なワークフロー
①ファイルの変更をステージングエリアへ追加
ステージングエリアとはコミット前の控え室
②ローカルリポジトリにコミット

[intro_git] git add first.txt
//addでステージングエリアへ登録 15:52:47 ☁ master ☂ ✭
[intro_git] git status first.txt
//現在のステータス確認。ここで緑色になって入れば、ステージングエリア登録完了している 15:53:01 ☁ master ☂ ✚
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: first.txt
[intro_git] git commit first.txt
//コミットしてローカルリポジトリに追加 15:54:56 ☁ master ☂ ✚
[master (root-commit) a2b2ff4] by haneda first commit
1 file changed, 2 insertions(+)
create mode 100644 first.txt
③リモートリポジトリにpushして追加
コミットできたら、GitHubへpushしていく。
GitHubを開いて、右上のプラスボタンからNew repositoryでリポジトリを作成
repository nameをintro_git
状態はpublic
create repository
で作成!
リポジトリが作成されたら、下記のコマンド実行してpush
[intro_git] git remote add origin https://github.com/hanedamiki/intro_git.git
[intro_git] git push -u origin master
私の場合だとなぜかアカウント入力してと言われる。。
下記のURL参考に解決!
https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/
http://nanase.hatenablog.jp/entry/2013/09/09/232529
3. 修正したファイルをローカルリポジトリに追加する
git add でファイルをステージングエリアへ追加
git commitでローカルリポジトリへ追加

ステージングエリアは変更したファイルを選ぶエリア
ローカルエリアへの準備 控え室のようなもの
コミットする際にはメモ出来る
変更内容をメモする
git commit -v は修正された差分が記載される

4. 色々な変更をコミット
新規作成、削除、複数ファイルのコミット
新しいファイルを作成

git status で確認してみると赤色になって、ファイルが新しく作成されている表示になっている

5. フィイルの変更履歴を確認
変更履歴を確認
git log
オプション
一行で表示する
git log --oneline
ファイルの差分を表示する
git log -P first.txt
最新3件の変更を表示
git log -n 3
6. フィイルの変更差分を確認
ローカルとステージングの差分
git diff
ステージングと最新コミットの差分
git diff HEAD
commitするとHEADで差分見てもなくなる
6. バージョン管理したくないファイルの登録
どういったファイル?
・自動生成されるファイル
・パスワードが記載されているファイル
.gitignoreに記載していく
git rm --cached second.txt
バージョン管理に戻す
git reset HEAD second.txt