http://norbauer.com/notebooks/code/notes/git-revert-reset-a-single-file
मुझे एक पोस्ट मिली है।
लेकिन अभी भी पता नहीं है कि क्या अंतर है
git checkout <filename>git checkout -- <filename>
किस स्थिति में मुझे क्रमशः पहले और दूसरे का उपयोग करना चाहिए?
http://norbauer.com/notebooks/code/notes/git-revert-reset-a-single-file
मुझे एक पोस्ट मिली है।
लेकिन अभी भी पता नहीं है कि क्या अंतर है
git checkout <filename>
git checkout -- <filename>
किस स्थिति में मुझे क्रमशः पहले और दूसरे का उपयोग करना चाहिए?
जवाबों:
विशेष "विकल्प" का --अर्थ है "इस बिंदु के बाद हर तर्क को एक फ़ाइल नाम के रूप में समझो, कोई फर्क नहीं पड़ता कि यह कैसा दिखता है।" यह जीआईटी-विशिष्ट नहीं है, यह एक सामान्य यूनिक्स कमांड लाइन सम्मेलन है। आम तौर पर आप इसका उपयोग यह स्पष्ट करने के लिए करते हैं कि तर्क एक विकल्प के बजाय एक फ़ाइल नाम है , उदाहरण के लिए
rm -f # does nothing
rm -- -f # deletes a file named "-f"
git checkout1-- का अर्थ यह भी है कि बाद के तर्क इसके वैकल्पिक "ट्रीडिश" पैरामीटर नहीं हैं जो निर्दिष्ट करते हैं कि आप चाहते हैं।
इस संदर्भ में यह हमेशा उपयोग करने के लिए सुरक्षित है --, लेकिन आपको इसकी आवश्यकता तब होती है जब आप जिस फ़ाइल को वापस करना चाहते हैं उसका एक नाम होता -है जो एक शाखा से शुरू होता है , या एक शाखा के नाम के समान होता है । शाखा / फ़ाइल वितरण के लिए कुछ उदाहरण:
git checkout README # would normally discard uncommitted changes
# to the _file_ "README"
git checkout master # would normally switch the working copy to
# the _branch_ "master"
git checkout -- master # discard uncommitted changes to the _file_ "master"
और विकल्प / फ़ाइल छूट:
git checkout -p -- README # interactively discard uncommitted changes
# to the file "README"
git checkout -- -p README # unconditionally discard all uncommitted
# changes to the files "-p" and "README"
मुझे यकीन नहीं है कि यदि आपके पास एक शाखा है, जिसका नाम शुरू होता है -। शायद पहली जगह में ऐसा नहीं है।
इस मोड में 1 ; "चेकआउट" कई अन्य चीजें भी कर सकता है। मुझे समझ में नहीं आया है कि क्यों git ने "चेकआउट" सबकोमांड के एक मोड के रूप में "अनअमेडेड बदलावों" को लागू करने के लिए चुना, बजाय अन्य VCSes की तरह "रिवर्ट" के, या "रीसेट" जो मुझे लगता है कि गिट की अपनी शर्तों में अधिक समझ हो सकता है।
--में विकल्पों और तर्कों के बीच एक विभाजक के रूप में व्यापक रूप से लागू किया जाता है। यह किसी भी प्रोग्राम / उपयोगिता के लिए काम करता है जो POSIX getopt(3)का उपयोग अपने कमांड लाइन विकल्प, (देखें man 3 getopt), शेल-स्क्रिप्ट का उपयोग करने के लिए करता है getopt(1), और कुछ प्रोग्राम जो इसे स्वयं लागू करते हैं, लेकिन काम करने के लिए सार्वभौमिक रूप से गारंटी नहीं है ।
--इसका मतलब है कि 'नकारात्मक परिवर्तन' का मतलब है ला सी / सी ++ - और सोच रहा था कि कभी भी। होश उड़ जाना!