विशेष "विकल्प" --
का अर्थ है "इस बिंदु के बाद फ़ाइल नाम के रूप में प्रत्येक तर्क का इलाज करें, इससे कोई फर्क नहीं पड़ता कि यह कैसा दिखता है।" यह गिट-विशिष्ट नहीं है, यह एक सामान्य यूनिक्स कमांड लाइन सम्मेलन है। आम तौर पर आप इसे स्पष्ट करने के लिए उपयोग करते हैं कि तर्क विकल्प के बजाय फ़ाइल नाम है, उदा।
rm -f # does nothing
rm -- -f # deletes a file named "-f"
git checkout
भी --
लेता मतलब पर बाद में होने तर्क इसकी वैकल्पिक "treeish" पैरामीटर निर्दिष्ट करना जो प्रतिबद्ध आप चाहते हैं नहीं कर रहे हैं।
तो इस संदर्भ में यह हमेशा --
उपयोग करने के लिए सुरक्षित है, लेकिन आप जरूरत यह फ़ाइल आप वापस करना चाहते हैं एक ऐसा नाम है -
के साथ शुरू होता है, या एक शाखा के नाम के समान है है जब। शाखा/फ़ाइल बहुविकल्पी के लिए कुछ उदाहरण:
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 इस मोड में; "चेकआउट" कई अन्य चीजें भी कर सकता है। मैंने कभी नहीं समझा है कि क्यों गिट ने "अन्य चेकआउट" उप-आदेश के रूप में "अनचाहे परिवर्तनों को छोड़ना" को लागू करने का विकल्प चुना है, अन्य अधिकांश वीसीएस की तरह "वापसी" या "रीसेट" के बजाय, जो मुझे लगता है कि गिट की शर्तों में अधिक समझदारी हो सकती है।
यह भी देखें [गिट चेकआउट डबल डैश का अर्थ] (http://stackoverflow.com/q/13321458/456814)। –