目的
コマンドを毎回忘れて、ググルの面倒なので残しておきます。
GitHubについて
そもそもGitHubとはという説明は、ほぼいらないかと思います。一言で言えば、「開発状況(コード)を共有し、効率的且つ高速に開発を行うためのツール」と解釈しています。
開発は一人で行うものではなく、チームで行うものです。そして開発の規模が大きくなればなるほどコードの量や使うツールも増えてきます。それを細かく人が管理していくのはほぼ不可能な世界になってきました。
今やGitHubなしで開発をするという会社はほとんど見かけなくなった気がします。
使ってみよう
早速GitHubの世界を見ていきます。
※Macでの環境設定になります。
インストール
macOSであれば、最初からgitはイントールされているので、別途インストール作業は不要です。
初期設定
gitで利用するユーザー名とメールアドレスを設定しておきます。git configコマンドで設定しましょう。
$git config --global user.name "名前"
$git config --global user.email "メールアドレス"
追加でコマンド出力に自動で色がつくようにしておきます。
$git config --global color.ui auto
各種設定した内容は、~/.gitconfigファイルの中に設定されています。
アカウント作成
以下githubにアクセスし、アカウントを作成しましょう。
usernameやメールアドレスは先程登録したものと同じものを設定しましょう。
SSH設定
ローカルからgithubへ入れるようにsshキー設定を行います。
$ssh-keygen -t rsa -C "メールアドレス"
パスワードを設定するように言われるので、好きなパスワードを設定します。
~/.sshフォルダに、id_rsa.pubというsshキーが作成されます。
この中身をコピーして、GitHubのsshkeys画面に登録します。

登録するとメールアドレスが飛んでくるので、認証して完了となります。
リポジトリの作成
リポジトリの作成の説明は不要かと思いますが、いちよう載せておきます。
リモートリポジトリの作成は、GitHub画面から行います。


ローカルリポジトリは、リモートリポジトリからcloneするか、initコマンドで初期化した後にremoteコマンドでつなげるかの2つの方法で作成できます。
※後述します。
コマンド一覧
git init
ローカルにリポジトリを作成するときに「リポジトリを初期化」する
mkdir test2
cd test2
git init

git status
リポジトリの状態を確認する
git status

git add
ステージ領域にファイルを登録する
git add <ファイル名> もしくは <.>

git commit
リポジトリに登録されているファイルを記録する
–amendをオプションとして追加すると、コミットメーセージを修正することができる
git commit -m "コメント"
git commit --amend

git log
コミットログを確認する
オプションの–graphをつけると、視覚的にブランチどのブランチからコミットされているか見ることができる。
git log
git log --graph


git diff
コミットの変更差分を確認する
コミットする前にきちんと変更されているか確認します。
git diff

git push
リモートリポジトリへ送信する
git push -u origin <ブランチ名>

git branch
ローカルブランチの一覧を表示する
git branch

リモートブランチの一覧を表示する
git branch -r
git checkout -b
ブランチを作成し、切り替える
git checkout -b <ブランチ名>

git merge –no-ff
ブランチをマージする。–no-ffは記録として残しておくためのオプションコマンド。
「マージする」というのは、例えば作業用のブランチ「feature-E」から開発用ブランチ「fix-B」にコードをあわせるような仕組みのこと。
マージするときはマージ先のブランチに移動して、どこのブランチをマージ対象とするか選択し、実行する。
基本複数人で開発する際は、他の人が修正した内容を自分のブランチにmergeしてコードを最新の状態にしてから、自分の作業用ブランチにcommit、pushする。
例)
- developブランチ
- feature/Aブランチ
①feature/Aブランチで修正作業、add、commit
②他の人が修正して、developブランチの内容が変更されている可能性があるので、developブランチをfeature/Aブランチにmerge(git merge develop)
③feature/Aブランチ(自分の作業用ブランチ)にpush
④その後にdevelopブランチに対してPRを出す
mergeを忘れると他の人の作業した内容を上書きしてしまう可能性があるので、必ずmergeしてソースを最新の状態にする。
git merge --no-ff <ブランチ名>

git reglog git reset –hard
歴史に戻って操作をやり直す。
git reglog

git reset --hard ハッシュ番号(上記画像のオレンジ色の番号のこと)
git remote add
リモートリポジトリの登録をする
git remote add origin git@github.com:ユーザー名/リポジトリ名.git
git clone
リモートリポジトリを取得する
-bオプションをつけると、指定のブランチでcloneできる
git clone git@github.com:ユーザー名/リポジトリ名.git
git clone -b <ブランチ名> git@github.com:ユーザー名/リポジトリ名.git
git pull
最新のリモートリポジトリブランチを取得する
git pull origin ブランチ名
PRの流れ
- masterブランチ、developブランチがある
- 機能の追加やバグの修正など各作業ごとにトピックブランチを作成し、そこで作業する
- 各トピックブランチで作業が完了し、テストコードまで確認したら、リモートのトピックブランチにpushする
- developブランチにGitHub画面からPRを出す
- develop管理者もしくは開発チームでFBする
- トピックブランチ開発者はFBに対して修正、PRを繰り返す
- 問題がなくなったら、develop管理者はdevelopブランチにマージする。(自動化)
- トピックブランチ開発者はマージ確認後、トピックブランチを削除する
- developブランチ管理者は、リリースできるタイミングになったら、masterブランチにマージしてデプロイする。(自動化)
開発者は、基本2~8までを繰り返し行う。

PRについては、ここだけで結構な量になってしまうので、別途記事を書こうと思います。
まとめ
gihubで普段使うコマンドについてまとめてみました。
普段あのコマンドどうやって書くんだっけってなることが多く、都度google先生に聞きながらやっているので、それ用に残しておきます。