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コマンド【備忘録】

0
Last updated at Posted at 2026-07-21

Gitの構造や予備知識、コマンドなどを備忘録としてまとめておく。
※ 挿絵は全てAI生成画像です。内容を確認の上掲載しています。

Gitの基本構造とデータの流れ

ChatGPT Image 2026年7月21日 11_18_15.png

Gitファイルのステータスコード

ChatGPT Image 2026年7月21日 11_52_20.png

ブランチ名の接頭辞

よく使われるものを示します。絶対のルールではありません。

接頭辞 意味
feature/ 新しい機能の追加
fix/ バグ修正
hotfix/ 緊急性の高いバグ修正
refactor/ 動作を変えない内部コードの改善
docs/ ドキュメントの追加・修正
test/ テストコードの追加・修正
style/ CSSや見た目の修正
chore/ 設定変更や依存パッケージ更新
perf/ パフォーマンス改善
release/ リリース準備
experiment/ 検証や試作

ヘルプ

指定したコマンドのオプションに関するヘルプを表示する。
意外と重宝する。

git <コマンド> -h

クローン

リモートリポジトリをローカルにコピーする。

SSH形式:

git clone git@github.com:<ユーザー名>/<リポジトリ名>.git

HTTPS形式:

git clone https://github.com/<ユーザー名>/<リポジトリ名>.git

現在の状態を確認

git status
git status --short 

変更内容を確認する

ステージングしていない変更

git diff

ステージング済みの変更

git diff --staged

git diffでは、新規作成された未追跡のファイルは表示されないので注意。

ステージング

1ファイルのみステージング:

git add <ファイルパス>

現在のディレクトリ以下の変更をすべてステージング:

git add .

ステージングを取り消す

技術的には、HEADの内容をステージングエリアにコピーすることで、ステージングを取り消している。

A: HEAD
B: ステージングエリア
B: 作業ディレクトリ

A: HEAD
A: ステージングエリア
B: 作業ディレクトリ

git restore --staged <ファイルパス>

全てのファイルを対象にするには.を使用する。

git restore --staged .

作業内容を破棄する

技術的には、ステージングエリアの内容を作業ディレクトリにコピーすることで、作業内容を破棄している。
A: HEAD
B: ステージングエリア
C: 作業ディレクトリ

A: HEAD
B: ステージングエリア
B: 作業ディレクトリ

git restore <ファイルパス>

全てのファイルを対象にするには.を使用する。

git restore .

※未追跡のファイルはそのまま残るので注意。

コミット

git commit -m "<コミットメッセージ>"

直前のコミットを作り直す

ステージング済みの変更を含めて直前のコミットを作り直す。

git commit --amend 

上記ではvimが開かれコミットメッセージを編集できるが、手っ取り早く下記でも可能。

git commit --amend -m "<コミットメッセージ>"

コミットメッセージを再利用する場合:

git commit --amend --no-edit

リモートから最新を取得

追跡先のブランチからプルする場合:

git pull

originのmainを現在のブランチに統合したい場合:

git pull origin main

※追跡先のブランチはgit branch -vvで確認可能。
※プル=フェッチ&マージ

リモートへ送信

git push

初回の場合:
「mainブランチをリモートのorigin/mainブランチに送信する。次回以降もローカルのmainはorigin/mainに送信するように紐付けを行う。」と言う意味になる。

git push -u origin main

または

git push --set-upstream origin main

ブランチ一覧

git branch

リモートも含める場合:

git branch -a

ブランチ作成

git branch <ブランチ名>

ブランチを切り替える

git switch <ブランチ名>

作成と同時に切り替える場合:

git switch -c <ブランチ名>

ブランチを削除

git branch -d <ブランチ名>

強制的に削除する場合:

git branch -D <ブランチ名>

リモートの最新情報を取得

リモート追跡ブランチを最新の状態にする。

git fetch

リモートを指定する場合:

git fetch <リモート名>

ブランチを指定する場合:

git fetch <リモート名> <ブランチ名>

コミット履歴を見る

git log

見やすく表示する場合:

git log --oneline --graph --decorate

リモート一覧

git remote -v

どのブランチを追跡しているか

git branch -vv

一時退避(stash)

ブランチを一時的に切り替える際に、今のブランチ状態をスタッシュエントリーとして保存することで、一時退避を実現する。

A: HEAD
B: ステージングエリア
C: 作業ディレクトリ
⇩ (スタッシュすると、ブランチの状態はHEADに戻る。)
A: HEAD
A: ステージングエリア
A: 作業ディレクトリ

git stash
git stash -u # 未追跡ファイルも含める場合
git stash push --include-untracked # 未追跡ファイルも含める場合
git stash push -m "<コミットメッセージ>" # スタッシュ内容にコミットメッセージをつける場合

スタッシュ一覧を表示する:

git stash list

復元する:

git stash pop    # 復元に成功した場合、復元と同時にstashを削除
git stash apply  # 復元してもstashはそのまま保持

stashを削除する:

git stash drop stash@{0} # 削除するstashは適宜指定

ファイル削除

ファイルを削除し、Git管理下からも削除する:

git rm <ファイルパス>

上記は下記と同等

rm <ファイルパス>
git add <ファイルパス>

ファイルは残しつつ、Git管理下から削除する場合:

git rm --cached <ファイルパス>

ファイル名変更

git mv old.txt new.txt

上記は下記と同等

mv old.txt new.txt
git add old.txt new.txt

コミットを取り消す

指定したコミットまで各状態を戻す。
ただし、未追跡ファイルは削除されない。

git reset --soft <コミット>   # コミットのみ戻す。
git reset --mixed <コミット>  # コミットとステージングを戻す。
git reset --hard <コミット>   # コミットとステージング、作業ツリーを戻す。

git reset <コミット> # --mixedはデフォルトなので省略可能。

コミットの指定方法の例:
C ← HEAD (コミットID: aabxs)
|
B ← HEAD~1 (コミットID: hhsnk)
|
A ← HEAD~2 (コミットID: akkls)

git reset HEAD    # Cの状態に戻す
git reset HEAD~1  # Bの状態に戻す
git reset <コミットID>   # Bの状態に戻す

過去のコミットを打ち消す

過去のコミットが行った変更を打ち消す、新しいコミットを作成する。

git revert <コミットID> # コミットIDを指定して打ち消す
git revert HEAD # 最新のコミットを打ち消す
git revert HEAD~2 # HEAD~2のコミットを打ち消す※HEADとHEAD~1のコミットは打ち消さない。

注意として、HEAD~2と指定した場合、HEADとHEAD~1のコミットによって生じた変更は打ち消さないので、HEAD~3の状態に戻るわけではないことに留意してください。

未追跡ファイルを削除する

git clean -n # 未追跡ファイルを確認
git clean -f # 未追跡ファイルの削除を実行

ディレクトリも含める場合:

git clean -nd # 未追跡ファイル/ディレクトリを確認
git clean -fd # 未追跡ファイル/ディレクトリの削除を実行

マージ

別ブランチの変更履歴を現在いるブランチへ統合する。

git merge <取り込むブランチ>

ChatGPT Image 2026年7月21日 15_18_59.png

スカッシュマージ:

git merge --squash <取り込むブランチ>
git commit -m "<コミットメッセージ>"

ChatGPT Image 2026年7月21日 16_25_58.png

フェッチからのマージ:

git merge <取り込むブランチ>

ChatGPT Image 2026年7月21日 16_41_03.png

リベース

ブランチの分岐元を、別のコミットへ付け替える操作。

git switch feature
git fetch origin
git rebase origin/main

ChatGPT Image 2026年7月21日 16_56_41.png

リモートURL確認

git remote get-url origin

リモートURL変更

git remote set-url origin git@github.com:<ユーザー名>/<リポジトリ名>.git

SSH接続確認

ssh -T git@github.com
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?