git command 201
2026年04月23日
はじめに
ステージング・コミット
閲覧・差分
ブランチ管理
クローン・リモート
GitHub連携
まとめ
Linux/macOS上で日々のGit運用を高速化するヘルパースクリプト集
regmonkey-gitcommand はGit標準コマンドでは面倒な作業を1コマンド化したシェルスクリプト集PATH に src/ を追加すれば git-<name> として実行可能..gitconfig の [alias] に登録すれば git <name> で呼び出せるインストール手順
# 1. clone
git clone https://github.com/RyoNakagami/regmonkey-gitcommand.git ~/.tool.d/regmonkey-gitcommand
# 2. dependency check (optional)
bash ~/.tool.d/regmonkey-gitcommand/setup_dependency.sh
# 3. PATH 追加(.zshrc / .bashrc)
export PATH="$PATH:$HOME/.tool.d/regmonkey-gitcommand/src"
# 4. 実行権限付与
chmod +x ~/.tool.d/regmonkey-gitcommand/src/*ステージング・コミット (5)
git-add-newline — 末尾改行の自動追加git-add-patch — 対話的ステージングgit-gen-commit — Claudeでコミットメッセージ生成git-sprint-commit — スプリント週番号付きコミットgit-newline-check — 末尾改行欠落検査閲覧・差分 (4)
git-check-commitsize — 巨大コミットの検出git-lastdiff — ファイル最終変更差分git-tree — git管理ファイルだけのtree表示git-whoami — Git User 表示ブランチ管理 (4)
git-delete-obsolete-branch — gone branch 削除git-delete-remote-branch — リモートブランチ削除git-tmp-checkout — WIPを新ブランチに退避git-browse — ブラウザでリポジトリを開くクローン・リモート (4)
git-sparse-checkout — 部分クローンgit-ssh-clone-from-https — HTTPS→SSH変換クローンgit-push-multiple-remotes — 全remoteへpushgit-repo-update — YAML起点のメタデータ更新GitHub連携 (3)
git-create-repo — YAMLからGitHubリポジトリ作成git-delete-current-repo — 現リポジトリの削除git-issue2pr — IssueをPRに変換はじめに
ステージング・コミット
閲覧・差分
ブランチ管理
クローン・リモート
GitHub連携
まとめ
git-add-newline: 末尾改行の自動追加tracked な全ファイルに末尾改行を付与し,ファイルフォーマットの乱れを排除
-i PATTERN で除外パターンを複数指定可能Usage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-h, --help |
ヘルプ表示 |
-i PATTERN |
除外パターン(複数可) |
REMARKS
git-add-newline: DS文脈の活用例ノートブック変換CSVや集計結果の末尾改行を揃え,diff ノイズを削減
\ No newline at end of file が出てレビューしにくくなる問題を一掃to_csv() や R write.csv() は改行を付けるが,独自書き出しロジックだと欠落することもユースケース: 分析成果物の整形
git diff がクリーンになりレビュー効率UP.CIで linter が失敗しなくなるgit-add-patch: 対話的ステージング変更ファイルをディレクトリ・キーワードで絞り込み,git add -p で部分ステージング
git add -p は全変更ファイルが対象で大規模リポジトリだと面倒-a オプションで変更全ファイルを一括ステージ(git add -u + untracked)Usage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-a |
全変更ファイルを一括ステージ |
-d <dir> |
ディレクトリ指定 |
-s <keyword> |
ファイル名キーワードで絞込 |
-h |
ヘルプ表示 |
git-add-patch: DS文脈の活用例分析コードとノートブックを分けてコミットし,レビューしやすい履歴に
git-add-patch -d でステージすれば,1PR=1テーマの原則を守れるユースケース: 前処理とモデルを別コミットに
# 1コミット目: 前処理の変更だけ
git-add-patch -d src/preprocess/
git commit -m "feat(preprocess): add outlier clipping"
# 2コミット目: モデル側の変更
git-add-patch -d src/models/
git commit -m "feat(model): switch to lightgbm"
# 3コミット目: ノートブックの結果更新
git-add-patch -s ".ipynb"
git commit -m "docs(notebook): refresh eval results"git-gen-commit: Claudeでコミットメッセージ生成git diff --cached を Claude CLI にパイプし,ワンラインコミット文を自動生成
claude -p <prompt> に流し,1行コミットメッセージを生成--rule <path> でプロジェクト独自ルール(Conventional Commits等)を追加プロンプトとして注入可能--dryrun で生成結果のみ確認.納得したら実コミットUsage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
--dryrun |
メッセージのみ出力(コミットなし) |
--rule <path> |
追加プロンプトファイル |
-h, --help |
ヘルプ表示 |
REMARKS
claude CLI が PATH 上にあり,API設定済git-gen-commit: DS文脈の活用例ノートブックの大量セル変更から要点を抽出し,意味のあるコミットメッセージに
feat: EDA: 売上に対する曜日効果の可視化追加」のような実質的な変更点を抽出可能.claude/commit-rule.md)で prefix・フォーマットを統一ユースケース: 実験ループでの高速コミット
git-sprint-commit: スプリント週番号付きコミットISO週番号 sprint-YYYY-WWw をプレフィックスにしたコミットを自動生成
date +%Y-%Vw でISO週番号を取得し,sprint-2026-17w のような週バケツをコミット名に-m <msg> で詳細を追記可能.1日に複数コミットしても同じ週番号で揃うUsage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-m, --message <msg> |
追加メッセージ |
-h, --help |
ヘルプ表示 |
git-sprint-commit: DS文脈の活用例週次ベースの実験進捗を時系列で追跡.振り返りやレポートにそのまま使える
git log --grep "sprint-2026-17" でその週の試行錯誤を一括抽出できるユースケース: 週次レポート自動化
git-newline-check: 末尾改行欠落検査末尾改行が欠けているファイルを一覧表示.CI の pre-check に最適
git-add-newline の検査のみ版 ── 自動修正せず報告だけ-i で任意の除外パターンを追加可能git-newline-check: DS文脈の活用例GitHub Actions に組み込み,データファイル・ノートブックの整形を CI レベルで保証
ユースケース: GitHub Actions での整形チェック
はじめに
ステージング・コミット
閲覧・差分
ブランチ管理
クローン・リモート
GitHub連携
まとめ
git-check-commitsize: 巨大コミットの検出指定期間内で閾値以上のサイズを持つコミットを列挙.リポジトリ肥大化を早期発見
--unit でサイズ単位,--lowersize で閾値,--days で期間を指定commit-size / commit-id / file-number / commit-date の4カラムUsage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-u, --unit <B/KB/MB/GB> |
サイズ単位 |
-l, --lowersize <N> |
下限閾値 |
-d, --days <N> |
何日前までを対象にするか |
-h, --help |
ヘルプ表示 |
git-check-commitsize: DS文脈の活用例誤コミットされた学習データ・モデル重みを検出し,git-filter-repo で除去する入口
git filter-repo --path <file> --invert-paths で履歴から除去のワークフローに使えるユースケース: 月次の肥大化監査
git-lastdiff: ファイル最終変更差分指定ファイルの最新コミット vs 現在の差分を difftool で視覚的に比較
-n <N> でN個前のコミットを基準にできる.「前回いじった時との差を知りたい」用途にフィット--no-tool で difftool なしの通常 git diff 出力に切替Usage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-n <N> |
N個前のコミットを基準 (既定: 1) |
--no-tool |
git diff で出力 (difftoolなし) |
-h, --help |
ヘルプ表示 |
git-lastdiff: DS文脈の活用例ノートブック/モデル定義の「前回実装」との差分確認.実験の進化過程を可視化
git log -p -- <file> は冗長.git-lastdiff なら1コマンドで直近差分を視覚表示ユースケース: モデル改善履歴の確認
git-tree: git管理ファイルだけのtree表示tree --fromfile を使い,.gitignore 準拠で git-tracked ファイルだけを階層表示
tree は node_modules/ .venv/ data/ など無視したいディレクトリまで表示するgit-tree は git ls-tree -r --name-only HEAD を使い,本当に管理下のファイルのみを表示git-tree: DS文脈の活用例README/ドキュメントに貼り付ける「プロジェクト構造」を .venv や data/raw/ を除去して取得
tree だと巨大で読めなくなるgit-tree ならソース・設定・notebook だけが出るので,そのまま貼れるユースケース: README 生成補助
git-whoami: Git User 表示現在の Git 設定の user.name と user.email を表示.ミスコミット防止に
git config user.name と user.email を1コマンドでまとめて表示username (email@example.com) 形式で出力git-whoami: DS文脈の活用例企業内リポジトリと個人リポジトリを往復する際の ID 取り違えを防止
includeIf で directory ごとに切替設定しても,意図通り適用されているか確認したいgit-whoami を呼ぶだけで事故を予防ユースケース: push前のガード
はじめに
ステージング・コミット
閲覧・差分
ブランチ管理
クローン・リモート
GitHub連携
まとめ
git-delete-obsolete-branch: gone branch 削除リモート追跡が切れたローカルブランチ(gone)を検出して一括削除
git fetch --prune 実行後,リモートが消えたローカル追跡ブランチを一覧git branch -d による安全削除(merge済みのみ)Usage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
--dry |
dry-run(削除しない) |
--yes |
確認なしで削除 |
-h |
ヘルプ表示 |
REMARKS
git branch -d なので unmerged は保護されるgit-delete-obsolete-branch: DS文脈の活用例実験ブランチの墓場を整理.feat/exp-xxx ブランチで溢れたリポジトリを一掃
git branch がノイズだらけにユースケース: 週次のブランチ整理
git-delete-remote-branch: リモートブランチ削除対話不要で指定リモートブランチを削除.--with-local でローカルも同時削除
git push <remote> --delete <branch> の安全ラッパー.dry-run・remote指定・local同時削除に対応feature/* の掃除などにUsage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
--remote <name> |
remote名 (既定: origin) |
--dry |
dry-run |
--with-local |
ローカルも削除 |
-h, --help |
ヘルプ表示 |
git-delete-remote-branch: DS文脈の活用例実験完了後の「本家リモート + ミラーリモート」両方のブランチを整理
--remote を使い分けて順次消せばクリーンユースケース: マルチリモート環境での掃除
git-tmp-checkout: WIPを新ブランチに退避現在の作業木(untracked含む)をstash→新ブランチ作成→stash適用.作業を失わず分岐
git stash push -a でtracked + untracked の全変更を退避git switch -c <new_branch> で新ブランチ作成,その上に stash を applyUsage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-m <msg> |
stashメッセージ(省略時は自動) |
-c <branch> |
作成するブランチ名 (必須) |
-h, --help |
ヘルプ表示 |
REMARKS
git-tmp-checkout: DS文脈の活用例main でノートブック試行錯誤してしまった時に,実験ブランチに無痛退避
main のノートブックを直接いじって実験してしまうgit-tmp-checkout で変更を保ったまま実験ブランチに移動ユースケース: 誤ったブランチで始めた実験の退避
git-browse: ブラウザでリポジトリを開くGitHub / GitLab / Bitbucket の remote URL を自動判定しブラウザで開く
-b でブラウザ指定(firefox / chrome / chromium).既定は git web--browse に委譲-r <ref> で特定のブランチ・タグ・コミットのURLに直飛びUsage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-b <browser> |
firefox/chrome/chromium |
-r <ref> |
branch/tag/commit |
-h |
ヘルプ表示 |
REMARKS
/tree/, GitLab /-/tree/, Bitbucket /src/ を自動判別git-browse: DS文脈の活用例実験ブランチのリンクをSlackで即共有.レビュー依頼の起点に
ユースケース: 実験結果のシェア
はじめに
ステージング・コミット
閲覧・差分
ブランチ管理
クローン・リモート
GitHub連携
まとめ
git-sparse-checkout: 部分クローンモノレポから src/ や特定パスだけを取得.--bare でメタ情報のみ取得も可能
git clone --no-checkout --filter=blob:none + core.sparseCheckout=true のコンボを1コマンド化-p でコロン区切りのパスを複数指定.-s で top-level のみの骨格クローンUsage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-u <url> |
clone URL (必須) |
-d <dir> |
target directory (必須) |
-b <branch> |
branch (必須) |
-p <paths> |
:区切りパス |
-s |
bare mode |
-h, --help |
ヘルプ表示 |
git-sparse-checkout: DS文脈の活用例巨大モノレポから必要なノートブック群だけを取得.データ/モデル重みを除外し高速クローン
notebooks/ や src/features/ だけあれば十分なケースが多い--filter=blob:none と併用でblobを遅延取得,初回クローン時間を大幅短縮ユースケース: 分析担当者ごとの軽量clone
# 特徴量担当: features と共通スクリプトだけ取得
git-sparse-checkout \
-u git@github.com:acme/ml-platform.git \
-d ./ml-platform-slim -b main \
-p "src/features:src/utils:notebooks/feature-eng"
# CI担当: workflow とインフラだけ
git-sparse-checkout \
-u git@github.com:acme/ml-platform.git \
-d ./ml-infra -b main \
-p ".github:infra:Dockerfile"git-ssh-clone-from-https: HTTPS→SSH変換クローンGitHub のURLを貼るだけでSSHクローン.hostname指定で複数SSHキー運用にも対応
https://github.com/user/repo.git) をそのまま渡してSSHでclone-h で SSH config のhostnameを指定可能(github-work 等で複数キー切替)-d で clone 先ディレクトリ指定Usage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-h <hostname> |
SSH host alias(既定: github.com) |
-d <directory> |
clone 先 |
REMARKS
-h は標準のHELPではなくhostname指定.ヘルプは引数なしで呼び出しgit-ssh-clone-from-https: DS文脈の活用例会社用と個人用のSSHキーを切り替えながら,HTTPS URLコピペでcloneできる
github-work / github-personal を分けて鍵を切替えるのが定番ユースケース: マルチアカウント運用
# ~/.ssh/config
# Host github-work
# HostName github.com
# IdentityFile ~/.ssh/id_ed25519_work
# Host github-personal
# HostName github.com
# IdentityFile ~/.ssh/id_ed25519_personal
# 会社リポジトリ
git-ssh-clone-from-https -h github-work \
https://github.com/acme/ml-pipeline.git
# 個人リポジトリ
git-ssh-clone-from-https -h github-personal \
https://github.com/ryonakagami/side-project.gitgit-push-multiple-remotes: 全remoteへpush設定済みremoteすべてに同じブランチを順次push.ミラー運用の定型化
git remote で取得した全リモートに対し,指定ブランチを順次 git pushgit-push-multiple-remotes: DS文脈の活用例社内GitLab + 社外GitHub + バックアップのミラー運用.実験スナップショットを冗長化
git push origin && git push mirror && git push backup を手で打つのは面倒ユースケース: 3-way ミラー運用
git-repo-update: YAML起点のメタデータ更新gh_repo.yml の description/topics を読み gh repo edit でリポジトリメタを反映
.github/repository_metadata/gh_repo.yml を読み込みdescription / topics を gh repo edit で反映Usage
One-liner equivalent
REMARKS
gh CLI,yamlcli,jqgit-repo-update: DS文脈の活用例プロジェクト仕様書と同期してGitHubのdescription/topicsを更新.ドキュメント追従の自動化
git-repo-update を走らせれば,実態とGitHub表示がズレないユースケース: CI でメタデータ同期
はじめに
ステージング・コミット
閲覧・差分
ブランチ管理
クローン・リモート
GitHub連携
まとめ
git-create-repo: YAMLからGitHubリポジトリ作成gh_repo.yml を元に gh repo create でリポジトリ新規作成.テンプレ化に最適
.github/repository_metadata/gh_repo.yml を読み込みname / visibility 等を gh repo create に渡してリポジトリをYAMLベースで作成Usage
One-liner equivalent
REMARKS
gh CLI 認証済,yamlcligit-create-repo: DS文脈の活用例新規実験プロジェクトのリポジトリを YAML テンプレから一発生成.ブートストラップ高速化
ユースケース: プロジェクトscaffold
git-delete-current-repo: 現リポジトリの削除現在のローカル Git リポジトリに対応するGitHubリポジトリを確認付きで削除
gh repo view で所属を取得し,<OWNER/REPO> 形式の対象リポジトリを削除-n で dry-rungit-delete-current-repo: DS文脈の活用例実験打ち切り・再構築時のcleanup.アーカイブではなく削除という選択肢が必要な場面に
gh repo archive ではなく完全削除したいケース(個人サンドボックス等)ユースケース: scaffoldミスの即時再作成
git-issue2pr: IssueをPRに変換既存のGitHub Issueを gh api 経由でPullRequestに変換.Issue本文を引き継げる
-b で指定したブランチが base,-i でIssue番号を指定Usage
One-liner equivalent
Options
| Option | 説明 |
|---|---|
-b <branch> |
base branch (必須) |
-i <issue> |
Issue番号 (必須) |
-r <remote> |
remote名 (既定: origin) |
-h, --help |
ヘルプ表示 |
REMARKS
git-issue2pr: DS文脈の活用例タスクissueのまま議論 → 実装が固まった瞬間にPR化,議論ログを無駄なく継承
ユースケース: RFC → 実装フロー
はじめに
ステージング・コミット
閲覧・差分
ブランチ管理
クローン・リモート
GitHub連携
まとめ
CLIとしてPATH追加すれば即使える..gitconfig alias 化で git <name> へ昇格
git / gh / tree / yamlcli / claude 程度git-add-patch / git-gen-commit / git-delete-obsolete-branch / git-tree から導入すると効果を実感しやすいおすすめ .gitconfig alias
[alias]
# regmonkey-gitcommand
add-newline = "!git-add-newline.sh"
add-patch = "!git-add-patch.sh"
browse = "!git-browse.sh"
check-commitsize = "!git-check-commitsize.sh"
delete-current-repo = "!git-delete-current-repo.sh"
delete-obsolete-branch = "!git-delete-obsolete-branch.sh"
issue2pr = "!git-issue2pr.sh"
lastdiff = "!git-lastdiff.sh"
newline-check = "!git-newline-check.sh"
sprint-commit = "!git-sprint-commit.sh"
tree = "!git-tree.sh"
tmp-checkout = "!git-tmp-checkout.sh"
whoami = "!git-whoami.sh"Regmonkey Presentation. ©Ryo Nakagami. All rights reserved.