/ / सबमिट के साथ एक git रिपॉजिटरी को दूसरे में कैसे मिलाएं? - git, merge, git-submodules, git-subtree, pretzo

Subtree विलय के साथ submodules के साथ एक गिट भंडार कैसे विलय करें? - गिट, विलय, गिट-सबोड्यूल्यूल, गिट-सबट्री, प्रीट्ज़ो

मेरे पास एक डॉटफाइल्स रिपॉजिटरी है। मैं सबमॉडल्स के साथ एक दूसरे को मर्ज करना चाहता हूं (prezto) में है, इसलिए मैं आसानी से सबमॉड्यूल की असुविधा के बिना एक भंडार में सब कुछ कर सकता हूं।

मैं अपने सभी सबमॉड्यूल्स के साथ अपने डॉटफ़ाइल्स रिपॉजिटरी में प्रीज़्टो को कैसे मिला सकता हूं?

मैं सबमॉड्यूल्स का उपयोग कर सकता हूं, मैं "पुराने जमाने" तरीके से या नए गिट उपशीर्षक उपकरण के साथ उप-विभाजन को मर्ज कर सकता हूं।

मैं सिर्फ यह नहीं जानता कि इस विशिष्ट मामले को कैसे करना है।

उत्तर:

जवाब के लिए 2 № 1

अलेक्जेंडर मिखाइलियन ने बनाया लिपि सभी सबमॉड्यूल को उपप्रकारों में बदलने के लिए, आपको इसे अपने मामले में अनुकूल बनाने में सक्षम होना चाहिए।

यहां प्रस्तुत हैं चरण:

cat .gitmodules |while read i
do
if [[ $i == [submodule* ]]; then
mpath=$(echo $i | cut -d" -f2)
read i; read i;
murl=$(echo $i|cut -d  -f3)
mcommit=`eval "git submodule status ${mpath} |cut -d  -f2"`
mname=$(basename $mpath)
echo -e "$namet$mpatht$murlt$mcommit"
git submodule deinit $mpath
git rm -r --cached $mpath
rm -rf $mpath
git remote add $mname $murl
git fetch $mname
git branch _$mname $mcommit
git read-tree --prefix=$mpath/ -u _$mname
fi
done
git rm .gitmodules

मुझे लगता है कि आपके लिए सबसे आसान मार्ग स्क्रिप्ट को लागू करना होगा prezto रेपो और उसके बाद रेपो को सबट्री इन करें dotfiles भंडार।

स्क्रिप्ट निष्पादित करने के बाद prezto भंडार आप निम्नलिखित का उपयोग करेंगे कदम उपशीर्षक बनाने के लिए:

  1. इंगित करने के लिए एक नया दूरस्थ URL जोड़ें prezto में repo dotfiles.

    git remote add -f prezto user@example.com:path/prezto.git
    
  2. मर्ज करें prezto स्थानीय में प्रोजेक्ट करें dotfiles परियोजना। यह आपकी किसी भी फाइल को स्थानीय रूप से परिवर्तित नहीं करता है, लेकिन यह अगले चरण के लिए Git तैयार करता है।

    git merge -s ours --no-commit prezto/master
    
  3. नामक एक नई निर्देशिका बनाएँ prezto-subdir (या जो कुछ भी आपको पसंद है), और के इतिहास को कॉपी करें prezto इसमें प्रोजेक्ट करें।

    git read-tree --prefix=prezto-subdir/ -u prezto/master
    
  4. उन्हें सुरक्षित रखने के लिए बदलाव करें।

    git commit -m "Subtree merged in prezto"