🎃
git便利コマンド集
背景
何かしら git で困ったことや、実際に使用した git のコマンドを集めた備忘録です。
適宜内容を更新していきます。
git diff
特定のコミットと現状のフォルダ or ファイルの差分を確認する
git diff <差分確認したい特定のcommit ID> <差分確認をしたい作業ディレクトリのフォルダ名 or ファイル名>
git commit
直前のコミットメッセージを修正する
- コミットメッセージをローカルで修正する
git commit --amend -m "新しいコミットメッセージ"
--amend を使うことで、最新のコミットメッセージを修正できます。
- リモートリポジトリに強制プッシュする
git push --force
push 済みのコミットメッセージを上書きするには、--force オプションをつけて強制的にプッシュする必要があります。
push 済みのリポジトリのコミットメッセージを修正する
- 変更したいコミットの親コミットを指定
git rebase -i HEAD~5
- エディタで表示されるリストで、変更したいコミットの pick を edit に変更:
pick 88b18c4 Type Union
edit a0c2d35 hoge Literal //'hoge'を'Type'に変更する
pick 569f1b3 Type enum
- git commit --amend を実行して、コミットメッセージを「Type Union」に修正して保存します。
git commit --amend
- rebase を続行:
git rebase --continue
5.リモートリポジトリへの反映: コミットメッセージを変更した後、git push -f コマンドで強制的にリモートリポジトリに反映できます。
直前の commit に対して、ファイルの追加漏れがあった場合
- 追加したい変更を作成し、ステージングする
git add .
- 直前のコミットに変更を追加する
コミットメッセージを変更したくない場合は、以下のコマンドを使います。※これで直前のコミットに追加の内容が含まれます。
git commit --amend --no-edit
- リモートリポジトリに強制 push する
すでに push 済みのコミットを書き換えるため、強制 push が必要です。
git push origin ブランチ名 --force
#または
git push origin ブランチ名 -f
git rm
.gitignore に記述する前に、不要なファイルを push してしまった場合の対処方法
- .gitignore に不要なファイルやフォルダを記述する
- git rm -r --cached . を実行し、再度 add と commit を実施する
git rm -r --cached .
git add .
git commit -m "既に追跡されている無視対象ファイルを削除"
git stash
作業内容をスタッシュに一時避難する
利用背景
- branch を切り替える前に作業をしてしまった場合
- 作業途中に、別ブランチに切り替える必要がある場合
- 色々やったけどうまくいかない、消すのはアレだけど、元に戻したい
作業手順
- git stash コマンドで作業内容を一時退避させる
git stash
- git stash apply コマンドで退避させた作業内容を戻す
新規作成した未追跡ファイルを stash する
- 以下いずれかのコマンド(同じ意味)を実行する
git stash -u
git stash --include-untracked
- 任意の場所で 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 の削除
- 最新の stash 1 件のみ削除
$ git stash drop
- 任意の stash 削除
$ git stash drop stash@{1}
- 全ての stash 削除
$ git stash drop clear
git checkout
直前のブランチに移動する
- -(ハイフン)を指定することで、直前にチェックアウトしていたブランチに移動できます。
コマンド例: 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
Discussion