#最初に
Gitを使うときには、GUI(SourceTreeなど)か、CUI(ターミナルなど)を使った操作になると思います。
GUIを使っている人がCUIを使ってみたいと思ったときに、最低限必要と思われるコマンドラインをまとめました。
ここで記載したコマンドはあくまで一部なのと、オプションの付け方次第で色々な用途に使えることがあるので、やってみたいケースがあったら検索をしてみるといいと思います。
また、人によって、状況によっても、これ使っても大丈夫・だめと色々ありますので、自分のGitへの理解度とかを考慮して、事故らない程度に色々コマンドを使ってみるといいと思います。
操作についてはMacのターミナルで検証しているため、Windowsでの動作は保証しかねます。ご注意ください。
#実際の利用方法
状態の確認
最初にワーキングツリー(作業フォルダ)まで移動してからコマンドを実行します。
$ git status
何かコマンドを打つたびに、このgit statusで状態を確認して、正しくコマンド操作が行われたかを確認するといいです。
ブランチの切り替え
差分が出ている状態は事前にstashやcommitしてください。
$ git checkout 【ブランチ名】
小技集
ローカルのブランチ一覧を確認したいとき。
$ git branch
リモートのブランチ一覧も確認したいとき。
$ git branch -a
最終編集者の確認
コードの最終編集者を確認したいときに。行単位で確認できます。
コンフリクトしたときなどに、誰のコードとコンフリクトしたかのチェックもできます。
$ git blame 【ファイル名】
ブランチの作成
新しい機能などを作成するときに、新しくブランチを作成するときに行います。
$ git checkout -b test_branch_a
上記は下記を行った場合と同じ結果になります
//現在いるブランチからtest_branch_aを作成する
$ git branch test_branch_a
//test_branch_aへブランチを移動する
$ git checkout test_branch_a
ローカルブランチの削除
削除するブランチ以外のところへブランチを移動して行います。
$ git branch -D test_branch_d
または
$ git branch -d test_branch_d
リモートブランチからpullする
pullをすると、リモートブランチからローカルブランチに最新のコミットを反映させることができます。
$ git pull origin test_branch_b
または
$ git pull
リモートブランチへpushする
//差分が出ているファイルを、すべてステージする
$ git add .
//ステージした差分をcommitする。vimが起動してコメント入力を求められます。
$ git commit
//コミットをリモートブランチのtest_branch_aへpushする
$ git push origin test_branch_a
上記の1行目のgit add .はあくまで指定方法のひとつなので、一部ファイルのみのコミットなどのときは、下記のように指定方法を変えてください。
小技集
ステージのファイル指定方法
$ git add test/filea.html
$ git add test/filea.html test/fileb.html
アンステージのファイル指定方法
git add でステージしたファイルを外します。
$ git reset HEAD test/filea.html
$ git reset HEAD test/filea.html test/fileb.html
うっかり間違えてほかのブランチで作業を開始した
状況によって異なりますが、コミット前ならstash。コミット済みならcherry-pickを使います。
コミット前 stash(作業を隠す)
stashを行ったら、正しいブランチでstash applyを行うことで、差分を正しいブランチで反映させます。
$ git stash
または
$ git stash save "間違って作業したもの"
$ git stash list
$ git stash apply@{0}
コミット済み cherry-pick(特定ブランチの反映)
誤って行ったコミットのハッシュをコピーしておいて、正しいブランチでcherry-pickをすると変更をコピーできます。
コピーしたあとは、間違ったコミットは削除します。
$ git cherry-pick XXXXXXXXXXXXXXXXXXXXX
削除するときは、元の間違ったブランチへcheckoutしてからおこないます。
$ git reset --hard HEAD^
小技集
$ git log