2012-10-26 8 views
5

कहें कि मेरे पास गिट रिपोजिटरी में एक शाखा "काम" और एक शाखा "विचार" है।क्या मैं सक्रिय से अलग शाखा में एक फाइल खोल सकता हूं?

मैं आमतौर पर "काम" शाखा में अपने marvelous_file.cpp पर काम करता हूं, लेकिन कभी-कभी मैं को अपने "विचार" शाखा में marvelous_file.cpp खोलना चाहता हूं।

मैं नहीं देखना चाहता कि दोनों फाइलों के बीच अंतर क्या है, बल्कि "विचारों" शाखा से कोड के स्निपेट लें और उन्हें "कार्य" शाखा में फ़ाइल में कॉपी और पेस्ट करें।

क्या यह संभव है? यदि नहीं, तो क्या मैं "विचार" में फ़ाइल को "काम" में चेकआउट कर सकता हूं, लेकिन एक अलग नाम के साथ?

उत्तर

7

वैसा करने के लिए git show उपयोग कर सकते हैं:

git show ideas:marvelous_file.cpp 

इस टर्मिनल में सही यह दिखा देंगे।

git show ideas:marvelous_file.cpp > ideas.cpp 
+0

+1 स्टैक ओवरव्लो हमेशा सीख रहा है। – Yamaneko

+0

+1। –

+0

जैसे कुछ खोजने की कोशिश कर रहे युग बिताए धन्यवाद यह काम करता है! मुझे गिट पसंद है, लेकिन कभी-कभी मुझे लगता है कि कुछ कार्यों को और अधिक तत्काल बनाया जाना चाहिए :) गिट चेकआउट-कमांड अच्छा होगा (शायद मैं ऐसा करने के लिए उपनाम जोड़ सकता हूं?) – lucacerone

0

आप अपने परिवर्तन के लिए प्रतिबद्ध स्थानीय स्तर पर पहले तो निम्न चरणों का ठीक से काम करेगा::

git checkout ideas -- path/to/your/file.txt 

फ़ाइल हड़पने होगा आपको लगता है कि एक फ़ाइल, बस इसे पाइप एक फ़ाइल में, उदाहरण के रूप में चाहते हैं कि आप अपने कामकाजी फ़ोल्डर में जो चाहते हैं उसे प्रतिस्थापित और प्रतिस्थापित करें। आप एक पूरे निर्देशिका या पूरे काम के पेड़ के लिए ऐसा कर सकते हैं:

git checkout ideas -- . 

पूरे काम पेड़

git checkou ideas -- dir/with/cool/stuff 

निर्देशिका की सभी सामग्री को आकर्षित करेगा हड़पने होगा।

अब आप

git reset -p 

व्यवस्थित दूर परिवर्तन फेंक आप नहीं चाहते हैं कर सकते हैं। स्निपेट को पकड़ना आसान हो सकता है जो आप चाहते हैं कि वे पहले से ही उन फ़ाइलों में शामिल हैं जिन्हें आप काम करने जा रहे हैं।

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