सबसे आसान शायद जो कोई भी रेपो टैग को होस्ट करने के लिए है और विशेष रूप से पेड़ आप चाहते हैं के लिए प्रतिबद्ध है। उदाहरण के लिए,
नदी के ऊपर पर:
git tag quickie $(git commit-tree $(git rev-parse HEAD:path/to/dir) </dev/null)
आप:
git fetch upstream quickie
आप स्वचालित रूप से एक शाखा पर एक सबट्री ट्रैक करने के लिए नदी के ऊपर रेपो चाहते हैं, आप (कर सकते हैं एक उपयुक्त decrypted संस्करण) कुछ इस तरह:
sed -n 's,^[^ ]* [^ ]* refs/heads/master$,git update-ref refs/heads/master-subtree -m "Auto-tracking master" $(git commit-tree master:subtree -m "Auto-tracking master subtree" $(test -r refs/heads/master-subtree \&\& echo -p refs/heads/master-subtree)),p' | sh -x
जो सरल की तुलना में यह लग रहा है है। इस प्रयास करें:
mkdir ~/tryitout && cd ~/tryitout && git init foo && git init bar --bare
cat >bar/hooks/post-receive <<'EOF'
sed -n 's,^[^ ]* [^ ]* refs/heads/master$,git update-ref refs/heads/master-subtree -m "Auto-tracking master" $(git commit-tree master:subtree -m "Auto-tracking master subtree" $(test -r refs/heads/master-subtree \&\& echo -p refs/heads/master-subtree)),p' | sh -x
EOF
chmod a+x bar/hooks/post-receive
cd foo
mkdir subtree && touch subtree/oooo && git add . && git commit -am-
git push ../bar master
देर अपडेट -
आप अन्य रेपो के साथ एक फाइल सिस्टम साझा कर रहे हैं, तो आप ऐसा कर सकते हैं:
git clone --no-checkout /path/to/local/repo/.git subtree
cd subtree
git commit-tree origin/rev:subtree </dev/null | xargs git checkout -B peek
और आप पर चारों ओर उछाल कर सकते हैं सूट को बदलने के द्वारा संशोधित, मूल/मास्टर: शामिल, मूल/अगला: शामिल, मूल/v1.4: somewhereelsenow, जो भी हो।
मैं आम तौर पर बड़े रेपोस के लिए एक "खाली" शाखा है। गिट एक खाली निर्देशिका के एक विशेष मामले को संभालता है:
git mktree </dev/null | xargs git commit-tree | xargs git checkout -b empty
पेज। HEAD निश्चित रूप से कोई भी संशोधन हो सकता है जिसे आप – jthill
चाहते हैं, लेकिन फिर टैग को बनाए रखने की आवश्यकता नहीं होगी? I.e, यदि रेपो का एक प्रासंगिक हिस्सा बदलता है, तो हमें टैग में उस बदलाव को चुनने की आवश्यकता होगी। या मैं गलतफहमी हूँ? –
@AndrewEisenberg आपको जो कुछ भी लाने जा रहे हैं उसके लिए आपको एक रेफरी चाहिए। मैं विस्तृत समाधान के लिए धन्यवाद एक अपस्ट्रीम ऑटो ट्रैक को एक उपट्री – jthill