2011-09-08 12 views
6

एक उत्पादन मशीन पर मैं डेटाबेस माइग्रेशन की सुविधा के लिए गिटहब से एक विशिष्ट संशोधन पर एक विशिष्ट फ़ाइल को देखना चाहता हूं। मैं पूरे स्रोत कोड भंडार को चेकआउट (या यहां तक ​​कि क्लोन) नहीं करना चाहता (क्योंकि यह मेरा उत्पादन वातावरण है)। मैं केवल उस फ़ाइल को कैसे खींच सकता हूं जिसे मैं ढूंढ रहा हूं?मैं पूरे भंडार को क्लोन किए बिना गिटहब से एक फ़ाइल कैसे देख सकता हूं?

+2

पहले से ही पक्का हल: http://stackoverflow.com/questions/610208/how-to-retrieve-a-single-file-from-specific -revision-in-git http://stackoverflow.com/questions/692246/how-do-i-revert-one-file-to-the-last-commit-in-git http://stackoverflow.com/प्रश्न/6580641/कैसे-टू-चेकआउट-ए-सिंगल-फाइल-इन-गिट http://stackoverflow.com/questions/1125476/git-retrieve-a-single-file-from-a-repository – fuzzyalej

+1

सभी उपरोक्त में से अधिकतर अप्रासंगिक हैं, http://stackoverflow.com/questions/1125476/git-retrieve-a-single-file-from-a-repository को छोड़कर, लेकिन दुर्भाग्यवश आप '' --remote =का उपयोग नहीं कर सकते'' गिटहब के साथ (http://groups.google.com/group/github/browse_thread/thread/cfcbcb1dc5f41f16)। –

उत्तर

3

जहां तक ​​मैं कह सकता हूं, http पर एक गिट रिपोजिटरी से एक फ़ाइल डाउनलोड करना वर्तमान में असंभव है। मेरा मानना ​​है कि गिटहब की एक अलग "डाउनलोड" सुविधा है, जिसे वे चाहते हैं कि लोग इसके बजाय उपयोग करें (लेकिन मुझे नहीं पता कि यह एक फ़ाइल को डाउनलोड करने का समर्थन करेगा या नहीं)।

कामकाज पूरे भंडार (!) को क्लोन करना है और फिर ब्याज की फाइल खींचना है। यहाँ एक पार्टी समारोह जो काम करता है है:

git-cat() { 
    if [ -z "$1" -o -z "$2" ]; then 
     echo "Usage: git-cat REPO_URL FILE [BRANCH]" 
     exit 1 
    fi 
    tmprepo=`mktemp -d -t gitrepo.XXXXXX` 
    reponame=$1 
    filename=$2 
    branchname=$3 
    if [ -z "$branchname" ]; then 
     branchname="master" 
    fi 
    git clone -nq $reponame $tmprepo && 
    git --git-dir $tmprepo/.git show ${branchname}:${filename} && 
    rm -rf $tmprepo 
} 
8

मैं की तरह रीढ़ की हड्डी के लिए के साथ ऐसा इसलिए

curl -O https://raw.github.com/documentcloud/backbone/master/backbone-min.js 
1

मेरे समाधान पहली पोस्ट में की तरह है। लेकिन मैं थोड़ा और समझाने की कोशिश करता हूं। प्रत्येक फ़ाइल के लिए गिटहब पर "कच्चा" बटन है - यह ब्राउज़र में केवल सादा पाठ दिखाएगा। इसके अलावा, आप उस यूआरएल का उपयोग कर सकते हैं।

उदाहरण के लिए, मैं रेपो https://github.com/MasterSergius/conf_files.git है और मैं तो यहाँ मेरी फाइल के लिए लिंक मेरी .vimrc फ़ाइल प्राप्त करने के लिए, चाहते हैं: मुझे लगता है है https://raw.githubusercontent.com/MasterSergius/conf_files/master/.vimrc , कि इस टेम्पलेट से तुम भी रेपो द्वारा फ़ाइल यूआरएल अनुमान लगा सकते हैं और पूर्ण पथनाम फ़ाइल करें। तो, अब मैं इसे कर्ल के साथ डाउनलोड कर सकते हैं:

curl https://raw.githubusercontent.com/MasterSergius/conf_files/master/.vimrc -o ~/.vimrc 
संबंधित मुद्दे

 संबंधित मुद्दे