
git-dumper v1.0.9
एक वेबसाइट से गिट रिपॉजिटरी डंप करने का उपकरण
git-dumper
एक उपकरण जो किसी वेबसाइट से गिट रिपॉजिटरी डंप करता है।
स्थापना
इसे pip के साथ आसानी से स्थापित किया जा सकता है:
pip install git-dumper
उपयोग
usage: git-dumper [options] URL DIR
Dump a git repository from a website.
positional arguments:
URL url
DIR output directory
optional arguments:
-h, --help show this help message and exit
--proxy PROXY use the specified proxy
-j JOBS, --jobs JOBS number of simultaneous requests
-r RETRY, --retry RETRY
number of request attempts before giving up
-t TIMEOUT, --timeout TIMEOUT
maximum time in seconds before giving up
-u USER_AGENT, --user-agent USER_AGENT
user-agent to use for requests
-H HEADER, --header HEADER
additional http headers, e.g `NAME=VALUE`
--client-cert-p12 CLIENT_CERT_P12
client certificate in PKCS#12 format
--client-cert-p12-password CLIENT_CERT_P12_PASSWORD
password for the client certificate
-b BRANCH, --branch BRANCH
additional branch name to check for (repeatable)
उदाहरण
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, आदि); - जितनी संभव हो उतनी रेफ्स खोजें (जैसे
refs/heads/master,refs/remotes/origin/HEAD, आदि).git/HEAD,.git/logs/HEAD,.git/config,.git/packed-refsआदि का विश्लेषण करके; .git/packed-refs,.git/index,.git/refs/*और.git/logs/*का विश्लेषण करके जितनी संभव हो उतनी ऑब्जेक्ट्स (sha1) खोजें;- सभी ऑब्जेक्ट्स को पुनरावर्ती रूप से प्राप्त करें, उनके पैरेंट्स खोजने के लिए प्रत्येक कमिट का विश्लेषण करें;
- वर्तमान कार्यशील ट्री को पुनर्प्राप्त करने के लिए
git checkout .चलाएँ