2015-04-18 5 views
6

अक्सर मुझे लगता है कि मैं git diff और पेस्टबिन्स, ईमेल इत्यादि का उपयोग करके काम/शाखाएं किए बिना गिट पेड़ में काम करना चाहता हूं। यह ठीक काम करता है जब सभी परिवर्तन पहले से ही संशोधित होते हैं- ट्रैक की गई फाइलें, लेकिन जब नई फाइलें शामिल नहीं होतीं। मैं git add -N का उपयोग करने के लिए एक खाली ट्रैक फ़ाइल जोड़ने के लिए उपयोग कर सकता हूं, लेकिन यह समस्याग्रस्त है यदि मैं प्रश्न में परिवर्तन से पहले अन्य चीजें करने जा रहा हूं (या यदि प्रश्न में परिवर्तन सिर्फ जंक हैं तो मैं फेंकना चाहता हूं)। git diff के साथ भंडार में अपनी स्थिति बदलने के बिना नई फ़ाइलों को जोड़ने के लिए diffs प्राप्त करने का कोई आसान तरीका है? अब तक मेरे पास एक बदसूरत लिपि है:नई अनचाहे फ़ाइलों के लिए गिट diff का निर्माण

for i in "[email protected]" ; do diff -u /dev/null "$i" | sed -e '[email protected]^+++ @+++ b/@ ; done 

क्या यह सबसे अच्छा तरीका है?

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

+2

यह बहुत आसान हो सकता है, लेकिन मैं बस 'गिट diff' से पहले' unitcked-file> 'जोड़ सकता हूं। फिर 'गिट रीसेट ' इसे फिर से ट्रैक करने के लिए और आप वापस आ गए हैं जहां आपने शुरू किया था। – omnikron

+0

@omnikron: जिन फ़ाइलों के लिए मैं diffs चाहता हूं वे अभी तक चरणबद्ध नहीं हैं, इसलिए इसे जोड़ने के लिए 'git diff --cached' का उपयोग करने की आवश्यकता होगी। अगर मैं इसे 'गिट ऐड-एन' के साथ जोड़ता हूं तो 'गीट रीसेट' का उपयोग करें, क्या यह सुरक्षित है, या यह अनचाहे फ़ाइल को नष्ट कर सकता है? –

+0

'गिट रीसेट' आपकी कार्यशील निर्देशिका में कुछ भी नष्ट नहीं करता है जब तक कि आप इसे '--hard' तर्क के साथ नहीं चलाते। – dizballanze

उत्तर

0

आप .tar.gz जैसे संग्रह में अनचाहे, संशोधित या हटाए गए फ़ाइलों को निर्यात कर सकते हैं और उन्हें अपने सहयोगियों को भेज सकते हैं। आप निम्न की कोशिश कर सकते हैं:

  • निर्यात संशोधित,, चले गए और

    tar zvcf ~/new-files-cache.tar.gz `git diff --name-only --diff-filter=ACMRT`

  • निर्यात ट्रैक न किए गए (नया) नष्ट कर दिया फ़ाइलों को संशोधित और नष्ट कर दिया फ़ाइलों

    tar zvcf ~/new-files-cache.tar.gz ` git status --short | sed 's/^ *[^ ]* \(.*\)/\1/g' `

मुझे समाधान मिल गए यहां: https://cmanios.wordpress.com/2014/04/12/export-untracked-modified-moved-and-deleted-files-from-a-git-repository-to-archive/

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