{"repo":"arthaud/git-dumper","free":true,"listed":false,"github":"https://github.com/arthaud/git-dumper","clone":"git clone https://github.com/arthaud/git-dumper.git","description":"A tool to dump a git repository from a website","language":"Python","stars":2639,"topics":["git","security","web"],"license":"MIT","category":"security-tools","readme_excerpt":"git-dumper A tool to dump a git repository from a website. Install This can be installed easily with uv : Alternatively, you can install it via pip. Note that modern Python environments may require you to use a virtual environment or the --user flag to avoid conflicts: Usage Example Disclaimer Use this software at your own risk! You should know that if the repository you are downloading is controlled by an attacker, this could lead to remote code execution on your machine. Build from source Simply install the dependencies with pip: Then, simply use: How does it work? The tool will first check if directory listing is available. If it is, then it will just recursively download the .git directory (what you would do with wget ). If directory listing is not available, it will use several methods to find as many files as possible. Step by step, git-dumper will: Fetch all common files ( .gitignore , .git/HEAD , .git/index , etc.); Find as many refs as possible (such as refs/heads/master , refs/remotes/origin/HEAD , etc.) by analyzing .git/HEAD , .git/logs/HEAD , .git/config , .git/packed-refs and so on; Find as many objects (sha1) as possible by analyzing .git/packed-refs , .git/index , .git/refs/ and .git/logs/ ; Fetch all objects recursively, analyzing each commits to find their parents; Run git checkout . to recover the current working tree","default_branch":null,"files":null,"tree":[],"storefront":"/r/arthaud","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/arthaud/git-dumper/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}