
New releaseSep 7, 2026
git-dumper v1.0.9
ウェブサイトからgitリポジトリをダンプするツール
git-dumper
ウェブサイトからGitリポジトリをダンプするツール。
インストール
pipで簡単にインストールできます:
pip install git-dumper
使用方法
usage: git-dumper [options] URL DIR
Dump a git repository from a website.
positional arguments:
URL URL
DIR 出力ディレクトリ
optional arguments:
-h, --help このヘルプメッセージを表示して終了
--proxy PROXY 指定されたプロキシを使用
-j JOBS, --jobs JOBS 同時リクエスト数
-r RETRY, --retry RETRY
リクエスト試行回数(諦めるまで)
-t TIMEOUT, --timeout TIMEOUT
諦めるまでの最大秒数
-u USER_AGENT, --user-agent USER_AGENT
リクエストに使用するユーザーエージェント
-H HEADER, --header HEADER
追加のHTTPヘッダー(例 `NAME=VALUE`)
--client-cert-p12 CLIENT_CERT_P12
PKCS#12形式のクライアント証明書
--client-cert-p12-password CLIENT_CERT_P12_PASSWORD
クライアント証明書のパスワード
-b BRANCH, --branch BRANCH
チェックする追加ブランチ名(繰り返し指定可能)
使用例
git-dumper http://website.com/.git ~/website
免責事項
このソフトウェアは自己責任で使用してください!
ダウンロードするリポジトリが攻撃者によって制御されている場合、リモートコード実行につながる可能性があることを認識しておく必要があります。
ソースからのビルド
pipで依存関係をインストールするだけです:
pip install -r requirements.txt
その後、次のように使用します:
./git_dumper.py http://website.com/.git ~/website
仕組み
ツールはまずディレクトリリスティングが利用可能かどうかを確認します。利用可能な場合は、単純に.gitディレクトリを再帰的にダウンロードします(wgetで行うのと同じです)。
ディレクトリリスティングが利用できない場合、可能な限り多くのファイルを見つけるためにいくつかの方法を使用します。段階的に、git-dumperは次のことを行います:
- 一般的なファイル(
.gitignore、.git/HEAD、.git/indexなど)をすべて取得する; .git/HEAD、.git/logs/HEAD、.git/config、.git/packed-refsなどを分析して、可能な限り多くの参照(refs/heads/master、refs/remotes/origin/HEADなど)を見つける;.git/packed-refs、.git/index、.git/refs/*、.git/logs/*を分析して、可能な限り多くのオブジェクト(sha1)を見つける;- すべてのコミットを分析して親コミットを見つけ、再帰的にすべてのオブジェクトを取得する;
git checkout .を実行して現在の作業ツリーを復元する