git - एसएलआर - सीआरआर दर 2018
इतिहास के बिना git रेपो की प्रतिलिपि बनाएँ (3)
वर्तमान में मेरे पास जीथब पर एक निजी भंडार है जिसे मैं सार्वजनिक करना चाहता हूं। हालाँकि कुछ शुरुआती कमिटमेंट में ऐसी जानकारी होती है जिसे मैं सार्वजनिक नहीं करना चाहता (हार्डकोड क्रिटिकल वगैरह)।
नवीनतम कमिट सार्वजनिक करने के लिए सबसे आसान मार्ग क्या है (मुझे सार्वजनिक भंडार में पिछले कमिट्स की आवश्यकता नहीं है या नहीं चाहिए) कुछ या सभी प्रतिबद्ध इतिहास को शामिल किए बिना?
निम्नलिखित आदेश का उपयोग करें:
git clone --depth <depth> -b <branch> <repo_url>
कहाँ पे:
-
depth
उन कमिटों की मात्रा है जिन्हें आप शामिल करना चाहते हैं। यदि आप सिर्फ नवीनतम कमिटgit clone --depth 1
उपयोग करना चाहते हैं -
branch
उस दूरस्थ शाखा का नाम है जिसे आप क्लोन करना चाहते हैं। यानी अगर आप चाहते हैं कि आखिरी 3master
ब्रांच का उपयोग करेंgit clone --depth 3 -b master
-
repo_url
आपके भंडार का url है
cloning करते समय आप इतिहास की गहराई को सीमित कर सकते हैं:
--depth <depth>
Create a shallow clone with a history truncated to the specified
number of revisions.
यदि आप सीमित इतिहास चाहते हैं, लेकिन फिर भी कुछ का उपयोग करें।
#!/bin/bash
set -e
# Settings
user=xxx
pass=xxx
dir=xxx
repo_src=xxx
repo_trg=xxx
src_branch=xxx
repo_base_url=https://$user:[email protected]/$user
repo_src_url=$repo_base_url/$repo_src.git
repo_trg_url=$repo_base_url/$repo_trg.git
echo "Clone Source..."
git clone --depth 1 -b $src_branch $repo_src_url $dir
echo "CD"
cd ./$dir
echo "Remove GIT"
rm -rf .git
echo "Init GIT"
git init
git add .
git commit -m "Initial Commit"
git remote add origin $repo_trg_url
echo "Push..."
git push -u origin master