GitのインストールからGithubへのSSH接続までの流れを紹介します。
以下で出てくる単語類
Untracked files:gitがまだトラッキングしていないファイル Unstaged Changes:変更があるファイル Staged Changes:コミットする前(git addでこのステージへぽい) Commits:ここにコミットしていくことで、以前コミットしたファイルなどをトラッキングできる(ゲームでいうとセーブポイント的なやつ)
gitの準備と使い方【基本】
gitをインストール
インストール後バージョン確認
git —version
プロジェクトのディレクトリにて
イニシャライズ
git init
(プロジェクトのルートで実行)
Initialized empty Git repository in /Users/kogakentarou/Desktop/プロジェクトのディレクトリ/.git/
.gitファイルが作成される
git status
ステータスを表示(プロジェクトの変更点)
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
.babelrc
jest.config.json
node_modules/
package.json
public/
src/
webpack.config.js
yarn.lock
nothing added to commit but untracked files present (use "git add" to track)
ファイルの場所・変更のあるファイル
最初はno commits yet(まだコミットしてないよ〜)と出てくる
node_modulesはpackage.jsonの情報から再構成できるのでコミットしてトラッキングする必要ないので以下でignoreするように設定
プロジェクトのディレクトリに.gitignoreファイルを作り、無視したいフォルダ・ファイルを記述
今回はnode_modules/
再びgit statusでignoreされているか確認
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
.babelrc
.gitignore
jest.config.json
package.json
public/
src/
webpack.config.js
yarn.lock
nothing added to commit but untracked files present (use "git add" to track)
node_modulesフォルダがなくなりました
git addでUntracked filesエリアからstaged changesエリアに移動
git add 追加したいファイル名:追加したいファイルを移動 git add . :全てのファイルを移動
これでコミットの準備完了です
git commit -m “First commit"
*メッセージを””内に入れます
実行するとコミットが作成されトラッキングされます
git statusすると
nothing to commit, working tree clean
と出ます
何もファイルをいじったりしていないので
前回のコミットと変わらない=トラックする変更点がないものがない
試しにsrc/app.jsを編集してgit statusを実行すると
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/app.js
no changes added to commit (use "git add" and/or "git commit -a")
こんな感じで変更されたファイル名が表示されます
*この段階はUnstaged changes
git add src/app.jsでStaged changesエリアに移動
git commit -m "メッセージ"でコミット
1 file changed, 9 deletions(-)
こんな感じでどんな変更があったのか表示されます
git logで最近のコミットが日付・メッセージ付きで見れます
Githubの準備
Githubのアカウントを作成してください。
アカウントが作成できたら、ログインして緑のボタンからリポジトリを作成する

リポジトリ名を入れてdescriptionは任意で入力
無料プランだとpublicリポジトリしか使えません
有料プランだとprivateリポジトリを使って非公開にできます

緑のcreate repositoryボタンを押します

SSHの設定
プロジェクトのディレクトリで
ls -a ~/.ssh
以下が表示されるとsshキーがすでにあります。
id_rsa id_rsa.pub
表示されない場合は
https://help.github.com/articles/connecting-to-github-with-ssh/
ここのGenerating a new ssh keyのページへ
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
自分のOSを選んでガイドに沿ってsshキーを作成
Macだと以下のようなコードが上のリンクのページにあると思うのでコマンドラインにコピペ(*メアドを入力)
ssh-keygen -t rsa -b 4096 -C “メアド”
するといくつか質問されます
keyはデフォルトのid_rsaでいいのでエンター
その他もpass phraseなどについて聞かれますがとりあえず全部エンターでおけー
これで先ほどのls -a ~/.sshを実行すると、
. .. id_rsa id_rsa.pub
というように表示されるかと思います。
次に
eval “$(ssh-agent -s)”
でssh-agentが動いているのか確認でき、動いていなければ動かしてくれます
実行すると
Agent pid 数字列
のように表示されます(動いていたら)
最後に
ssh-add ~/.ssh/id_rsa
*id_rsa.pubではなくid_rsa
Identity added:なんたらかんたら
という風に表示されgithubのような第三者のサービスにpublicキーのファイルを追加できるようになります
新しいSSHキーをGithubアカウントに追加します
https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/から自分の使っているOSを選んでコマンドをコピペしてください
以下はMac
pbcopy < ~/.ssh/id_rsa.pub
これでクリップボードにpubファイルのコンテントをコピーしてくれます。
ほんで、自分のgithubアカウントページに行きます
settingへ行きます

SSHに行きます

New SSHをクリック

わかりやすいtitleを入力して先ほどコマンドでコピーしたpubファイルの中身をKeyの所にペーストします

これで安全にgithubとローカルマシーンがコミュニケーションできるようになりました。
ターミナルからssh -T git@github.comでちゃんと設定できているか確認できます。
Are you sure you want to continue connecting (yes/no)?
と聞かれるのでyesと入力しエンター
すると、
Hi KentaroKoga! You've successfully authenticated, but GitHub does not provide shell access.
こんな感じで表示されるとちゃんと設定できています
これで準備完了です
先ほど作成したリポジトリのページに行きます。
SSHをクリックして横のgit@github.com・・・・・・・をコピー

git remote add origin 今コピーしたgit@・・・・
これでローカルgitリポジトリが外部のリポジトリが存在することがわかります
git remoteで
origin
git remote -vで
origin git@github.com:KentaroKoga/プロジェクト名.git (fetch)
origin git@github.com:KentaroKoga/プロジェクト名.git (push)
と表示されるかと思います。
git push -u origin master
これを実行するとローカルのコミットが今セットアップしたmasterブランチにいき、githubにpushされます
Branch master set up to track remote branch master from origin.
これが表示されたら先ほどのgithubのリポジトリのページ行ってページをリフレッシュしてみると・・・

こんな感じでファイルが表示されます。
commitsに行くと今までもcommitsがみることができ、いつ何を編集したのか見れます。
よく使うコマンドたち
- git status:変更したファイルを確認
- git add:変更のあるファイルをadd
- git commit -m “メッセージ”:commit
- git push:リポジトリにpush
*git add .で全てのファイル / git add ファイル名で特定のファイルをadd
git commit -am “メッセージ”でgit add .+git commit -m “メッセージ”と同じ
以上です〜