あんまり使わなさそうでマニアックなGitコマンドの一覧

## こちらが一覧になります！

果たしていくつ知ってるでしょうか？
---

| **コマンド** | **意味・用途** |
|---|---|
| **git init** | 新しいGitリポジトリを作成（初期化）する |
| **git clone [リポジトリURL]** | リモートリポジトリをローカルにコピーする |
| **git add [ファイル名]** | ファイルや変更をステージングエリアに追加する |
| **git add .** | すべての変更をステージングエリアに追加する |
| **git add -p** | 変更を対話的にステージングする |
| **git rm [ファイル名]** | ファイルを削除し、その変更を記録する |
| **git mv [旧ファイル名] [新ファイル名]** | ファイル名を変更し、その変更を記録する |
| **git commit -m "[メッセージ]"** | 変更をコミット（記録）する |
| **git commit --amend** | 直前のコミットを修正する |
| **git status** | ステージングエリアやワークツリーの状態を確認する |
| **git branch** | ブランチの一覧を表示する |
| **git branch [ブランチ名]** | 新しいブランチを作成する |
| **git branch -a** | すべてのブランチ（ローカル・リモート）を表示する |
| **git branch -d [ブランチ名]** | ブランチを削除する |
| **git branch -D [ブランチ名]** | マージされていないブランチも強制削除する |
| **git branch --merged** | マージ済みのブランチを表示する |
| **git branch --no-merged** | 未マージのブランチを表示する |
| **git checkout [ブランチ名]** | ブランチに切り替える |
| **git checkout -b [ブランチ名]** | 新しいブランチを作成して切り替える |
| **git checkout [コミットハッシュ]** | 特定のコミットに移動する |
| **git checkout -- [ファイル名]** | ファイルの変更を取り消す |
| **git merge [ブランチ名]** | ブランチを現在のブランチにマージする |
| **git merge --abort** | マージを中断し、元に戻す |
| **git rebase [ブランチ名]** | ブランチのベースを変更し、コミット履歴を整理する |
| **git rebase --abort** | リベースを中断し、元に戻す |
| **git pull** | リモートリポジトリから最新情報を取得し、マージする |
| **git pull origin [ブランチ名]** | 指定したブランチから取得してマージする |
| **git pull --rebase** | リベースしながらプルする |
| **git fetch** | リモートリポジトリから最新情報を取得する（マージはしない） |
| **git fetch --all** | すべてのリモートリポジトリから情報を取得する |
| **git push** | ローカルの変更をリモートリポジトリに反映する |
| **git push origin [ブランチ名]** | 指定したブランチをリモートにプッシュする |
| **git push origin --delete [ブランチ名]** | リモートブランチを削除する |
| **git push --force** | 強制的にプッシュする（注意して使用） |
| **git push --tags** | タグも一緒にプッシュする |
| **git log** | コミット履歴を表示する |
| **git log --oneline** | コミット履歴を1行で表示する |
| **git log --graph** | グラフ形式でコミット履歴を表示する |
| **git log -p** | コミットごとの変更内容を表示する |
| **git log --stat** | コミットごとの変更統計を表示する |
| **git log --author=[名前]** | 特定の作者のコミットを表示する |
| **git log --since=[日付]** | 指定した日付以降のコミットを表示する |
| **git log --until=[日付]** | 指定した日付以前のコミットを表示する |
| **git diff** | 変更内容の差分を表示する |
| **git diff [ブランチ名]** | 指定したブランチとの差分を表示する |
| **git diff --cached** | ステージングエリアと最新コミットの差分を表示する |
| **git reset [コミットハッシュ]** | 指定したコミットまで状態を戻す |
| **git reset --soft [コミットハッシュ]** | コミットだけを戻し、ワークツリーはそのまま |
| **git reset --mixed [コミットハッシュ]** | コミットとステージングエリアを戻す（デフォルト） |
| **git reset --hard [コミットハッシュ]** | ワークツリーも含めて指定したコミットまで戻す |
| **git revert [コミットハッシュ]** | 指定したコミットを打ち消す新しいコミットを作成する |
| **git stash** | 現在の変更を一時退避する |
| **git stash list** | 退避した変更の一覧を表示する |
| **git stash pop** | 退避した変更を復元する |
| **git stash apply** | 退避した変更を復元する（スタックから削除しない） |
| **git stash drop** | 退避した変更を削除する |
| **git stash clear** | すべての退避した変更を削除する |
| **git clean** | 追跡されていないファイルを削除する |
| **git clean -n** | 削除されるファイルを確認する（実際には削除しない） |
| **git clean -f** | 追跡されていないファイルを強制削除する |
| **git tag** | タグの一覧を表示する |
| **git tag [タグ名]** | タグを作成する |
| **git tag -a [タグ名] -m "[メッセージ]"** | 注釈付きタグを作成する |
| **git tag -d [タグ名]** | タグを削除する |
| **git show [タグ名]** | タグの詳細を表示する |
| **git remote -v** | リモートリポジトリの一覧を表示する |
| **git remote add [名前] [リポジトリURL]** | リモートリポジトリを追加する |
| **git remote remove [名前]** | リモートリポジトリを削除する |
| **git remote show [名前]** | リモートリポジトリの詳細を表示する |
| **git remote rename [旧] [新]** | リモートリポジトリ名を変更する |
| **git blame [ファイル名]** | ファイルの各行が誰によって変更されたか確認する |
| **git cherry-pick [コミットハッシュ]** | 特定のコミットを現在のブランチに適用する |
| **git bisect** | バグが混入したコミットを二分探索で特定する |
| **git submodule add [リポジトリURL] [パス]** | サブモジュールを追加する |
| **git submodule update --init --recursive** | サブモジュールを初期化・更新する |
| **git worktree add [パス] [ブランチ名]** | 新しいワークツリーを追加する |
| **git reflog** | 参照ログ（操作履歴）を表示する |
| **git fsck** | リポジトリの整合性をチェックする |
| **git gc** | 不要なオブジェクトを削除し、リポジトリを最適化する |
| **git archive** | リポジトリのアーカイブを作成する |
| **git bundle** | リポジトリのバンドルを作成する |
| **git grep [検索文字列]** | ファイル内の文字列を検索する |

---

**用途や状況に応じて、これらのコマンドを使い分けてください。**  
さらに詳しいオプションやコマンドも存在しますが、まずはこの一覧を活用してください。