よく使うgitコマンドメモ
#運用系
1) リモートリポジトリをローカルにクローン
git clone [リモートリポジトリURL] [ローカルディレクトリ]
2) 通常ワークフロー: 編集〜コミット〜push
①ローカルリポジトリを最新状態に更新
git pull
②編集用ブランチを作って遷移
git branch [ブランチ名]
git checkout [ブランチ名]
※デフォルトではmasterブランチ(統合ブランチ)だが、追加機能やissue単位でブランチを作成して(トピックブランチ)作業をするのが基本
③ファイル編集後にコミット
git status
git add [編集ファイル名]
git commit -m "[コメント(編集内容など)]"
status で変更のあったファイル一覧を確認できる。
commit用の対象ファイル追加は add だが、ファイル削除の場合は rm。
add . で一括追加できる。(rm . はできない)
④リモートリポジトリにpush
git push origin [ブランチ名]
ローカルのmasterブランチをリモートのmasterブランチにPushすると、ローカルの編集がそのまま反映されてしまう。
通常はブランチを分け、第3者にチェック依頼(Pull Request)して、第3者がチェック後にマージする流れが基本。
⑤リモートリポジトリでマージ
GitHubやbacklog、gitbucketなどのリポジトリ管理ツールでは、GUIベースでPull Requestやコード差分のチェック、マージなどの操作ができる。
第3者がトピックブランチの内容をチェックして、問題なければ統合ブランチ(master)にマージする。
マージされたコードはサーバ環境でPullすることで反映できる。
3)その他
git logのツリーを見る
git log --graph --all
remoteリポジトリを確認
git remote -v
remote branchを確認
git remote -a
3) ハマり系
①remoteの内容でlocalを強制上書き
conflictでハマって一からやり直したい時
※remoteリポジトリがupstreamの場合の例
git fetch upstream master
git reset --hard upstream/master
②remoteに強制上書き(push)
結構危険な最終手段
git push -f origin master
③変更内容を全てチャラに
前commit状態へ強制巻き戻し
git reset --hard
④過去のコミットに戻る
mergeしちゃったけど、チャラにしたい場合
git checkout [commit id]
commit id はgit logコマンドで確認
⑤upstreamに間違ってPushしちゃったので取り消したい
git logでcommitidを調べてrevertすると、
対処コミットをなかったことにできる。
その状態でpushして上書きすれば元通り。
git revert [commit id]
⑥特定のcommitへ戻る
git reset --hard [ハッシュ値]
初期設定系
1) ユーザコンフィグ設定(名前とメアド)
git config --global user.name [ユーザ名]
git config --global user.email [メールアドレス]
2) 短縮コマンドオプション(エイリアス)設定 ※任意
git config --global alias.[短縮コマンド] [通常コマンド]
例
git config --global alias.co checkout
git checkout を git co に短縮できる
3) リモートリポジトリを登録
git remote add [リポジトリ名] [リポジトリURL]
ローカルからのpushやpullの際に指定できる
4) リポジトリを新規作成(初期化)
git init
ディレクトリ内で実行