Git の基本コマンド
初期設定
レポジトリ初期化コマンドの git init は冪等性が保たれているので何回実行しても問題ない。
git init設定の確認。
git config -l環境のクリーンアップ
まずは環境をきれいに。
リモートレポジトリと同期した上でブランチ dev を使う例。
git fetch --all --prune # prune オプションでリモートに存在しないブランチを削除
git checkout dev
git reset --hard origin/dev # pull は fetch + merge なので reset の方が確実
git clean -f # 余計なファイルを消すもし残しておきたい変更があるなら stash に working treeの内容を退避させておく。
git stash
git reset --hard origin/dev
git stash apply過去の変更を確認する
--statによりどのファイルが何行変更されたかの記録を確認できる。
git log --stat-pによりコードの変更を表示することができる。
git log -p # p は patch の意--graph でブランチの merge 履歴がわかりやすく表示される。
git log --graph --oneline特定のコミットログを確認するには show。直前のコミットなら ID は省略可。
git show <commit ID>ファイル変更後の確認
diffはデフォルトではステージされていない変更を表示する。
git diffステージされた変更と直近のコミットを比較したい時は --staged を指定する。
git diff --stagedファイルごとにステージするかを確認するには -p をつける。
git add -p # review patchesコミットを指定して差分を確認することも可能。
git diff origin/master..HEAD <file>手元で merge するときは --no-ff で merge コミットを作り履歴を追いやすくする。
git merge --no-ff
git push origin HEAD:devロールバック
ステージしていない場合
git checkout <file> # 直近の状態に戻るステージしてしまった場合は reset でステージから除く
git reset HEAD <file> # 特定のファイルだけ指定のコミットへ戻す。すでにコミットしている場合
git commit --amend # Hash は変わるのでリモートへの push 前にしか使わないこと!
git revert HEAD # 変更を戻した新しいコミットが作られる

