git - गिट: दूरस्थ मूल मास्टर से एक फ़ाइल को अद्यतन/चेकआउट कैसे करें?




git-checkout (4)

परिदृश्य:

  1. मैं स्थानीय रूप से एक फ़ाइल में कुछ बदलाव करता हूं और git add , git commit और git push चलाता हूं
  2. फ़ाइल को रिमोट मूल मास्टर रिपोजिटरी में धक्का दिया जाता है
  3. मेरे पास एक और स्थानीय भंडार है जिसे कैपिस्ट्रानो के माध्यम से उस रिमोट रिपोजिटरी से "remote_cache" विधि के साथ तैनात किया गया है
  4. अब मैं पूरे एप्लिकेशन को तैनात नहीं करना चाहता हूं, लेकिन केवल एक फ़ाइल को अपडेट / चेकआउट करें।

कृपया, क्या यह गिट के साथ किसी भी तरह संभव है? मैं कुछ भी नहीं ढूंढ पाया जो काम करेगा और न ही मैं इसे समझने में सक्षम था। एसवीएन के साथ मैंने बस svn up file और voila किया था।

मुझे किसी भी मदद के लिए खुशी होगी, धन्यवाद!


आप क्या कर सकते हैं:

  1. अपने स्थानीय गिट रेपो अपडेट करें:

    git fetch

  2. स्थानीय शाखा बनाएं और चेकआउट करें:

    git branch pouet && git checkout pouet

  3. इस शाखा में इच्छित प्रतिबद्धता को लागू करें:

    git cherry-pick abcdefabcdef

    (abcdefabcdef उस प्रतिबद्धता का sha1 है जिसे आप लागू करना चाहते हैं)


ऐसा करना संभव है (तैनात भंडार में)

git fetch
git checkout origin/master -- path/to/file

Fetch सभी हालिया परिवर्तन डाउनलोड करेगा, लेकिन यह इसे आपके वर्तमान चेक आउट कोड (कार्यक्षेत्र) में नहीं रखेगा।

चेकआउट डाउनलोड किए गए पेड़ को डाउनलोड की गई परिवर्तन ( origin/master ) से विशेष फ़ाइल के साथ अपडेट करेगा।

कम से कम यह उन छोटे छोटे टाइपो फिक्स के लिए मेरे लिए काम करता है, जहां फ़ाइल में एक शब्द बदलने के लिए शाखा बनाने के लिए अजीब लगता है।


या जिस शाखा में आप हैं, उस पर गिट स्टैश (यदि आपके पास परिवर्तन हैं), चेकआउट मास्टर, नवीनतम परिवर्तनों को खींचें, उस फ़ाइल को अपने डेस्कटॉप (या पूरे ऐप) पर ले जाएं। उस शाखा को चेकआउट करें जिस पर आप थे। गिट स्टैश उस स्थिति पर लागू होता है जिस पर आप थे, फिर मैन्युअल रूप से परिवर्तनों को ठीक करें या फ़ाइल को प्रतिस्थापित करने के लिए खींचें।

इस तरह से बहुत अच्छा नहीं है लेकिन यह काम करता है अगर आप कुछ और नहीं समझ सकते हैं।


git archive --format=zip --remote=ssh://<user>@<host>/repos/<repo name> <tag or HEAD> <filename> > <output file name>.zip




git-checkout