git - एसएलआर - सीआरआर दर 2018




इतिहास के बिना git रेपो की प्रतिलिपि बनाएँ (3)

वर्तमान में मेरे पास जीथब पर एक निजी भंडार है जिसे मैं सार्वजनिक करना चाहता हूं। हालाँकि कुछ शुरुआती कमिटमेंट में ऐसी जानकारी होती है जिसे मैं सार्वजनिक नहीं करना चाहता (हार्डकोड क्रिटिकल वगैरह)।

नवीनतम कमिट सार्वजनिक करने के लिए सबसे आसान मार्ग क्या है (मुझे सार्वजनिक भंडार में पिछले कमिट्स की आवश्यकता नहीं है या नहीं चाहिए) कुछ या सभी प्रतिबद्ध इतिहास को शामिल किए बिना?


निम्नलिखित आदेश का उपयोग करें:

git clone --depth <depth> -b <branch> <repo_url>

कहाँ पे:

  • depth उन कमिटों की मात्रा है जिन्हें आप शामिल करना चाहते हैं। यदि आप सिर्फ नवीनतम कमिट git clone --depth 1 उपयोग करना चाहते हैं
  • branch उस दूरस्थ शाखा का नाम है जिसे आप क्लोन करना चाहते हैं। यानी अगर आप चाहते हैं कि आखिरी 3 master ब्रांच का उपयोग करें 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







git-fork