🎃

git便利コマンド集

に公開

背景

何かしら git で困ったことや、実際に使用した git のコマンドを集めた備忘録です。

適宜内容を更新していきます。

git diff

特定のコミットと現状のフォルダ or ファイルの差分を確認する

git diff <差分確認したい特定のcommit ID> <差分確認をしたい作業ディレクトリのフォルダ名 or ファイル名>

git commit

直前のコミットメッセージを修正する

  1. コミットメッセージをローカルで修正する
git commit --amend -m "新しいコミットメッセージ"

--amend を使うことで、最新のコミットメッセージを修正できます。

  1. リモートリポジトリに強制プッシュする
git push --force

push 済みのコミットメッセージを上書きするには、--force オプションをつけて強制的にプッシュする必要があります。

push 済みのリポジトリのコミットメッセージを修正する

  1. 変更したいコミットの親コミットを指定
git rebase -i HEAD~5
  1. エディタで表示されるリストで、変更したいコミットの pick を edit に変更:
pick 88b18c4 Type Union
edit a0c2d35 hoge Literal //'hoge'を'Type'に変更する
pick 569f1b3 Type enum
  1. git commit --amend を実行して、コミットメッセージを「Type Union」に修正して保存します。
git commit --amend
  1. rebase を続行:
git rebase --continue

5.リモートリポジトリへの反映: コミットメッセージを変更した後、git push -f コマンドで強制的にリモートリポジトリに反映できます。

直前の commit に対して、ファイルの追加漏れがあった場合

  1. 追加したい変更を作成し、ステージングする
git add .
  1. 直前のコミットに変更を追加する

コミットメッセージを変更したくない場合は、以下のコマンドを使います。※これで直前のコミットに追加の内容が含まれます。

git commit --amend --no-edit
  1. リモートリポジトリに強制 push する

すでに push 済みのコミットを書き換えるため、強制 push が必要です。

git push origin ブランチ名 --force
#または
git push origin ブランチ名 -f

git rm

.gitignore に記述する前に、不要なファイルを push してしまった場合の対処方法

  1. .gitignore に不要なファイルやフォルダを記述する
  2. git rm -r --cached . を実行し、再度 add と commit を実施する
git rm -r --cached .
git add .
git commit -m "既に追跡されている無視対象ファイルを削除"

git stash

作業内容をスタッシュに一時避難する

利用背景

  • branch を切り替える前に作業をしてしまった場合
  • 作業途中に、別ブランチに切り替える必要がある場合
  • 色々やったけどうまくいかない、消すのはアレだけど、元に戻したい

作業手順

  1. git stash コマンドで作業内容を一時退避させる
git stash
  1. git stash apply コマンドで退避させた作業内容を戻す

新規作成した未追跡ファイルを stash する

  1. 以下いずれかのコマンド(同じ意味)を実行する
git stash -u
git stash --include-untracked
  1. 任意の場所で stash を pop する

保存されている stash の参照

$ git status list
stash@{0}: WIP on feature/section7-class-object: b925ce9 :sparkles: アクセス修飾子
stash@{1}: WIP on main: cb02a63 :rocket: dotnet watch run によるビルド結果

stash の差分確認

$ git diff stash@{1}

stash の削除

  1. 最新の stash 1 件のみ削除
$ git stash drop
  1. 任意の stash 削除
$ git stash drop stash@{1}
  1. 全ての stash 削除
$ git stash drop clear

git checkout

直前のブランチに移動する

  1. -(ハイフン)を指定することで、直前にチェックアウトしていたブランチに移動できます。

コマンド例: git checkout -

現在のブランチを確認

$ git branch --show-current
develop

ブランチを feature/hoge に切替

$ git checkout feature/hoge

現在のブランチを確認

$ git branch --show-current
feature/hoge

ハイフンを指定して、一つ前のブランチに切替

$ git checkout -

現在のブランチを確認

$ git branch --show-current
develop

gh (github cli)

cli でリモートリポジトリを作成する方法

$ gh repo create --public --source=.

リモートリポジトリのブランチをローカルに作成する

$ gh repo clone <リモートリポジトリ名>

今いるリポジトリをブラウザで開く

$ gh browse
GitHubで編集を提案

Discussion