0
0

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コマンドまとめ(自分用)

Last updated at Posted at 2025-05-08

はじめに

git version

コマンド 説明
git version Gitのバージョンを出力する

git clone

コマンド 説明
git clone {リポジトリのURL} 対象リポジトリのデフォルトブランチをクローンする
git clone --depth {深さ} {リポジトリのURL} 対象リポジトリのデフォルトブランチを指定したコミット数で切り詰めてクローンする
git clone -b {ブランチ名} {リポジトリのURL} 対象リポジトリの対象ブランチをクローンする
git clone --recursive {リポジトリのURL} サブモジュールを含む対象リポジトリのデフォルトブランチをクローンする
git clone --depth 1 {リポジトリのURL} 履歴が多いリポジトリをクローンする時間を短縮できます

git remote

コマンド 説明
git remote リモートリポジトリの一覧を出力する
git remote add {リモートリポジトリ名} {リポジトリのURL} 対象リポジトリをローカルのリモートリポジトリに追加する
git remote rename {旧リモートリポジトリ名} {新リモートリポジトリ名} ローカルの対象リモートリポジトリをリネームする
git remote remove {リモートリポジトリ名} 対象リモートリポジトリをローカルから削除する

git branch

コマンド 説明
git branch ローカルブランチの一覧を出力する(チェックアウト中のブランチに * が付く)
git branch -r リモートブランチの一覧を出力する
git branch -a ローカルブランチとリモートブランチの一覧を出力する
git branch {ブランチ名} 対象ブランチを新規作成する(チェックアウトしない)
git branch -d {ブランチ名} 対象ブランチを削除する
git branch -f {ブランチ名} 対象ブランチを強制削除する
git branch -D {ブランチ名} 対象ブランチを強制削除する
git branch -m {旧ブランチ名} {新ブランチ名} 対象ブランチをリネームする
git branch --set-upstream-to=origin/リモートブランチ名 ローカルブランチ名 ローカルのYYYブランチの追跡するリモートブランチをXXXへ変更
git branch -VV ローカルブランチ名,状態,追跡するリモートブランチ名を表示

git checkout

コマンド 説明
git checkout {ブランチ名} 対象ブランチに切り替える
git checkout -b {ブランチ名} 対象ブランチを新規作成し、切り替える
git checkout {ファイルパス} ワーキングディレクトリにある対象ファイルの変更を取り消す
git checkout . ワーキングディレクトリにある全ファイルの変更を取り消す

2.23.0で git switchgit restore コマンドが追加され、git checkout コマンドを使わなくても済むようになりました。

git restore

基本的に指定したファイルの変更を取り消し,最後にコミットされた状態へ戻す.

コマンド 説明
git restore {ファイルパス} ワーキングディレクトリにある対象ファイルの変更を取り消す
git restore . ワーキングディレクトリにある全ファイルの変更を取り消す
git restore --source {コミットID} {ファイルパス} 対象ファイルの変更を対象コミットに戻す

単にステージ(git add)したワーキングディレクトリの変更を取り下げる場合は,オプションに--stagedを用いる.

コマンド 説明
git restore --staged {ファイルパス} 対象ファイルのステージングを取り消す
git restore --staged . 全てのステージングを取り下げる

git diff

コマンド 説明
git diff ワーキングディレクトリにあるファイルの差分を出力する
git diff --cached インデックスにあるファイルの差分を出力する

git status

コマンド 説明
git status 変更したファイルの一覧を出力する
git status -s git status を短い形式で出力する
git status -s -b 短い形式でもブランチとトラッキングを出力する

git add

コマンド 説明
git add {ファイルパス1} {ファイルパス2}... 対象ファイルをインデックス(コミット対象)に追加する
git add -A 変更した全ファイルをインデックスに追加する
git add -p {ファイルパス} 対象ファイルをハンク単位でインデックスに追加する

git reset

コミットを取り消す際に用いる.

git reset (option 1) (option 2)

  • option1:コミット取り消し後の状態の指定(デフォルトでは --mixed)
  • option2:戻る先のコミットの指定(デフォルトでは HEAD の1つ前のコミット)
コマンド 説明 備考
git reset --soft 最新のコミットを取り消し、その変更をステージングエリアに残す(git add状態は保持) git commitにより最新のコミットを(新たなコミットとして)復元可能
git reset --mixed(デフォルト) 最新のコミットを取り消し、その変更をワーキングディレクトリに残し、ステージングエリアから外す git addからのgit commitにより、最新のコミットを復元可能
git reset --hard 最新のコミットとすべての変更を取り消し、ワーキングディレクトリとステージングエリアを完全にリセットする(変更内容が失われる) ワーキングディレクトリの変更が取り消されているためgit addgit commitでは復元できない
git reset --hard ORIG_HEAD 直前の git reset 操作を元に戻す(通常、git reset --hard の取り消し)

最新のコミットを取り消すため,共通して最新のコミット以降の変更を間接的に取り消すことに注意.

コミットに作用せずに単にステージングを取り消す(ワーキングディレクトリの変更自体はそのまま)操作を行うにはHEADを付け加える(つまり,git reset --mixed HEAD).

コマンド 説明
git reset HEAD {ファイルパス} ステージングエリアにある対象ファイル(git add {ファイルパス} を取り消す
git reset HEAD ステージングエリアにある全ファイル(git add -A)を取り消す
`git reset HEAD` と `git restore --staged .` どちらも機能面では同じ.ただし,ニュアンスが少し異なる.
  • 共通点

    • ステージングエリアにある変更をワーキングディレクトリに戻す
    • コミット履歴には影響を与えない.ステージングされている変更を解除するだけで、ワーキングディレクトリにはその変更が残る

  • 微妙な違い

    • git reset HEAD
      古いGitのバージョンから存在しており,ステージングエリア全体や特定のファイルを扱う場合に使われる.HEADを基準として操作を行うため、直感的には「HEADに対してリセットを行う」という感じ.
    • git restore --staged
      Git 2.23以降で導入された新しいコマンドで,より明示的な操作を可能する.このコマンドは、ワーキングディレクトリとステージングエリアの変更を独立して操作するために設計されている.

git commit

コマンド 説明
git commit 指定したエディタでメッセージを書き、インデックスにある全ファイルをコミットする
git commit -m "{メッセージ}" メッセージを付け、インデックスにある全ファイルをコミットする
git commit --amend <要追加>

「指定したエディタ」とは、.gitconfigeditor で指定しているエディタのことです。

git revert

コマンド 説明
git revert HEAD 直前のコミットを元に戻すコミットを作成する
git revert {コミットID} 対象コミットを元に戻すコミットを作成する

git push

コマンド 説明
git push origin {ローカルブランチ名} 対象ローカルブランチを origin にプッシュする
git push -d origin {リモートブランチ名} 対象リモートブランチを origin から削除する
git push origin {タグ名} 対象タグを origin にプッシュする
git push -d origin {タグ名} 対象タグを origin から削除する
git push -f 強制プッシュする
git push --force-with-lease 強制プッシュする(ブランチのアップストリームが変更されている場合などは拒否する)

git fetch

コマンド 説明
git fetch origin origin から最新の履歴を取得する
git fetch --prune origin リモートリポジトリ上に存在しなくなったブランチなどの参照を削除し、origin から最新の履歴を取得する

git rebase

コマンド 説明
git rebase origin/{ブランチ名} origin にある対象ブランチを、チェックアウト中のブランチへリベースする
git rebase --continue リベースを続ける
git rebase --abort リベースを強制終了する
git rebase --quit リベースを中止する

git merge

コマンド 説明
git merge origin/{ブランチ名} origin にある対象ブランチを、チェックアウト中のブランチへマージする
git merge --squash origin/{ブランチ名} origin にある対象ブランチのコミットをひとつにまとめ、チェックアウト中のブランチへマージする
git merge --continue マージを続ける
git merge --abort マージを強制終了する
git merge --quit マージを中止する

git cherry-pick

コマンド 説明
git cherry-pick {コミットID} 対象コミットをチェリーピックする
git cherry-pick {始点の1つ前のコミットID}..{終点のコミットID} 始点から終点までのコミットをチェリーピックする
git cherry-pick {始点のコミットID}^..{終点のコミットID} 始点から終点までのコミットをチェリーピックする
git cherry-pick --skip 現在のコミットをスキップして、残りのシーケンスを続ける
git cherry-pick --quit 失敗したチェリーピックを取り消す

git stash

コマンド 説明
git stash list スタッシュの一覧を出力する
git stash show スタッシュの変更を出力する
git stash push -m "{メッセージ}" メッセージを付け、変更をスタッシュにプッシュする
git stash pop スタッシュの変更をワーキングディレクトリに戻す(スタッシュから消える)
git stash apply スタッシュの変更をワーキングディレクトリに戻す(スタッシュから消えない)
git stash drop スタッシュから変更を削除する

2020/03/12現在、git stash save は非推奨です。代わりに git stash push を使いましょう。

スタッシュについては、以下の記事が参考になります。
https://qiita.com/chihiro/items/f373873d5c2dfbd03250

git log

コマンド 説明
git log ログを出力する
git log --graph --name-status --pretty=format:"%C(red)%h %C(green)%an %C(Cyan)%ad %Creset%s %C(yellow)%d%Creset" ぼくのかんがえたさいきょうのぎっとろぐ

HEAD

HEAD

ORIG_HEAD

特定のGit操作(主にgit reset、git merge、git rebaseなど)を行う前のHEADの位置を一時的に保存するポインタ.

  • 主な使用法
    git resetgit mergeなどを実行する前の状態に戻りたい場合に使う.
    • 例:git resetgit reset --hard ORIG_HEAD
      • git resetを実行すると、その前のHEADの位置がORIG_HEADに保存される.
      • このポインタ(ORIG_HEAD)をもとに、git reset ORIG_HEADで操作を元に戻すことができる.
      • 参考:ORIG_HEADの使用例
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?