🦁

📝 Gitメモ

に公開

Gitメモ

個人的によく使用するGitコマンドと、GitHub上で使える知識まとめ

コマンド

ブランチ

  • git swith -c "ブランチ名": ブランチの作成とそのブランチへの切り替え
  • git br -D "ブランチ名": マージしていないブランチの削除
$ git switch -c hoge
$ git bt -D fuga

確認

  • git diff: ステージする前の変更差分の確認
  • git diff --staged: ステージした後の変更分の確認
  • git log --oneline: コミット履歴の1行ごとの確認
$ git diff
$ git diff --staged
$ git log --oneline

フェッチ / プル

  • git fetch "リモート名": リモートから情報の取得
    • ローカルへの取得で、自身のワークツリーには反映されない(保存場所: remotes/リモート名/ブランチ名)
  • git merge "リモート名/ブランチ名": フェッチした情報のマージ
  • git pull: リモートから情報の取得(フェッチ+マージ)
    • --rebase: リモートとローカルで異なるコミット履歴を持つ際に使用
$ git fetch hoge
$ git merge hoge/fuga
$ git pull
$ git pull --rebase

プルリクエスト / コミットの削除

  • git revert "コミット": コミットの打ち消し
    • 打ち消したコミットの履歴も、打ち消した履歴自体も残る
  • git rebase -i HEAD~n: 不要なコミットの編集(n = コミット数)
    • 削除したコミットの履歴も、消した履歴自体も残らない(完全削除)
$ git revert f54bcda11
$ git rebase -i HEAD~3

stash

  • git stash save "メッセージ": メッセージ付きで変更差分の退避
  • git stash list: 退避した作業の一覧
  • git stash pop "stash名": 退避した作業を戻す
$ git stash save hogehoge
$ git stash list
$ git stash pop stash@{0}

その他

コメント略語

コードレビュー時によく見る英略語

  • IMO: 私の意見としては
  • NITS: 細かい指摘
  • Q: 質問
  • LGTM: 良いと思います
  • FYI: ご参考までに
  • WIP: 作業中
  • IMHO: 私の意見では(控えめ)

コードの複数行ハイライト表示

GitHub上のコードを複数行まとめてハイライトして表示する

  • リンクの末尾に #Ln~Lm を付ける(※n, m = 行数)
# 例
https://github.com/rails/strong_parameters/blob/master/lib/action_controller/parameters.rb#L12~L19

Discussion