16
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

よく使う、または忘れがちな Git Commandまとめ

Last updated at Posted at 2019-01-07

はじめに

よく使う便利なコマンドや、いざ使おうと思った時、忘れてしまっていることがあるコマンドをまとめてみました。

1つ前にコミットした差分

git log -p -1

1つ前にコミットしたファイル一覧を表示

git log --stat -1

1つ前のコミットをなかったことにする

git reset --hard HEAD^

ワークディレクトリの内容はそのままで1つ前のコミットをなかったことにする

git reset --soft HEAD^

1つ前のコミットメッセージを修正

git commit --amend

1つ前のコミットユーザを修正したい

git commit --amend --author="user_name <user_email@example.com>"

1つ前のコミットした時間を今の時間に修正したい

git commit --amend --date "`date -R`"

コミット済みの2以上のコミットを1つのコミットにまとめる

例)aaa.txt ファイルを編集しコミットしたが、漏れがあり、追加編集したコミットを1つにまとめたい

git rebase -i HEAD~~

まとめたいコミットのコマンドを pick から s または squash に変更し保存(:wq 等)

image.png

コミットメッセージを修正する画面が表示される

image.png

コミットメッセージを修正し保存(:wq 等)

追加の変更を最新のコミットに追加する

変更内容をAddしておく

git add -A

最新のコミットのメッセージのまま追加の変更を最新のコミットに反映

git commit --amend --no-edit

空でcommitする

git commit --allow-empty -m "メッセージ"

一番最初のコミットを2つ目のコミットとまとめる

git rebase -i --root

派生元のブランチを変更する

git rebase --onto [変更先ブランチ名] [変更前ブランチ名] [対象のブランチ名]

派生元のブランチを更新する場合

git pull --rebase origin [派生元のブランチ名]

リモートのブランチにローカルのブランチを強制一致させる

git reset --hard origin/[ブランチ名]

ブランチの切り替え

git checkout [切り替えたいブランチ名]

ブランチの作成

git checkout -b [作成したいブランチ名]

この時、派生元にするブランチに切り替えておく

ブランチの削除

current branchが削除対象のブランチの場合、以下のエラーが発生し、削除できないので、別のブランチに checkout しておく

error: Cannot delete the branch 'test' which you are currently on.

マージ済みのブランチを削除

git branch --delete [削除したいブランチ名]

マージしていないブランチを削除する場合、以下のエラーが出て、マージされていないとお知らせしてくれる

error: The branch 'test' is not fully merged.
If you are sure you want to delete it, run 'git branch -D test'.

マージしたかどうかを問わずブランチを削除

git branch -D [削除したいブランチ名]

マージ済みのブランチを一括削除

git branch --merged|egrep -v '\*|develop|master|main'|xargs git branch -d

developmastermainは消さないようにしています。

1つ前の作業ブランチに切り替える

git checkout -

指定ファイルを1つ前のコミット時の状態に戻す

git checkout HEAD~ [指定ファイル]

特定のファイルのみコミットを取り消す(変更する)

git checkout [コミットID] -- [変更したいファイル or フォルダ]

Gitの設定を変更

ユーザ名の設定(local)

git config --local user.name [ユーザ名]

メールアドレスの設定(local)

git config --local user.email [メールアドレス]

設定の確認

git config --list

特定のコミットのみを反映させる

git cherry-pick [コミットID]

特定のコミットを指定のブランチにpush

git push origin [コミットID]:[pushしたいブランチ名]

ファイル名の大文字・小文字の変更を検知

設定の確認

git config -l --local | grep core.ignorecase
検知しない
core.ignorecase=true
検知する
core.ignorecase=false

設定の更新

例)検知するに更新
git config core.ignorecase false

タグのコミットハッシュ取得

git show-ref -s [タグ名]

最後に

筆者は特に commit --amend --authorrebase --onto の書き方を忘れます。
筆者は大量にコンフリクトした時等の考えることを放棄した瞬間、呪文のように git status を唱えています。

16
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?