2013-04-11 8 views
12

मैंने this tutorial का पालन करके गिट में एक एसवीएन भंडार परिवर्तित कर दिया है। और अब this answer में सुझाए गए उप-भंडार निकालने के लिए प्रतीत नहीं होता है।गिट एक फ़ाइल को वापस नहीं करेगा या उसे स्वीकार नहीं करेगा जो इसे लगता है

लंबी पोस्ट को क्षमा करें लेकिन अधिकांश टेक्स्ट अच्छी तरह से स्वरूपित गिट आउटपुट है।

ओएस: Windows 8 आदेश लाइन: MinGW Git संस्करण: 1.8.1.msysgit.1

एक subrepository निकालने जब तक आप एक स्वच्छ मचान क्षेत्र और कोई संशोधित है काम करने के लिए प्रतीत नहीं होता की प्रक्रिया फ़ाइलें।

git status मुझे बताता है कि मेरे पास एक संशोधित फ़ाइल है, भले ही यह एक नया एसवीएन आयात है। ठीक है, आइए बस कोशिश करें और इससे छुटकारा पाएं।

फ़ाइल को आज़माएं और वापस लाएं।

user$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: folder with space/folder/toolbar.png 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

user$ git checkout -- "folder with space/folder/toolbar.png" 

user$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: folder with space/folder/toolbar.png 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

यह काम नहीं किया है, लेकिन मैं वास्तव में परवाह नहीं है अगर मैं प्रतिबद्ध ऐसा मुझे लगता है कि अगले कोशिश करेंगे।

user$ git commit -a -m "Testing if committing fixes it" 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: folder with space/folder/toolbar.png 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

user$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: folder with space/folder/toolbar.png 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

मचान लंघन काम नहीं करता द्वारा स्वीकार हो रहे हैं, तो चलो कोशिश करते हैं और पहले स्टेज करते हैं।

user$ git add "folder with space/folder/toolbar.png" 

user$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: folder with space/folder/toolbar.png 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

काम नहीं करता है, इसलिए मैं स्टंप हो गया हूं ... जाओ और किसी से पूछें।

मैं गिट के लिए नया हूं लेकिन एचजी से परिचित हूं और खुद को शुरू करने के लिए this online tutorial पढ़ रहा हूं।

यह पूरी तरह से संभव है कि मैंने एक साधारण कमांड को गड़बड़ कर दिया है।

पहले से ही कोशिश की गई: मैंने अपनी विशेष समस्या के समाधान के लिए चारों ओर देखा लेकिन थोड़ा भाग्य प्राप्त हुआ। मैंने this answer पर ठोकर खाई है जो संबंधित प्रतीत होता है लेकिन मेरी समस्या को ठीक नहीं करता है।

संपादित करें: दिलचस्प हो सकता है कि यह वह हिस्सा है जो मुझे भ्रमित करता है। मैंने कुछ समय पहले एक ऑनलाइन भंडार में इस रेपो को धक्का दिया है। ताजा क्लोन के बाद रेपो अभी भी सोचता है कि फ़ाइल संशोधित है (यानी git status एक ही परिणाम देता है, और मैंने पहले से ही git config --global core.autocrlf false सेट कर लिया है और git config --global core.autocrlf चलाकर सत्यापित किया है जो वास्तव में झूठा लौटाता है)।

संपादित करें 2: सही करना पाया है, लेकिन समस्या अभी भी समझ नहीं है मैं बस प्रणाली, मचान क्षेत्र से फ़ाइल को हटाने और फिर परिवर्तन करने से भंडार ठीक करने के लिए प्रबंधित किया है। फ़ाइल को वापस पाने के लिए मैंने इसे वापस कॉपी कर लिया है और इसे रिपोजिटरी में प्रतिबद्ध किया है।

समस्या हालांकि, निश्चित रूप से मुझे और अधिक उलझन में डाल दिया है।

जब मैं फ़ाइल मैंने देखा है कि अगर मैं HEAD, जिसका आखिरी प्रतिबद्ध फ़ाइल हटा दिया गया है करने के लिए भंडार रीसेट, Git स्थिति का संकेत होता है कि कुछ भी नहीं बदला गया है को दूर करने के साथ और उस फ़ाइल पर नज़र रखी लेकिन नहीं कर रहा है चारों ओर खेल रहा था फ़ाइल मेरे काम कर रहे पेड़ में बहाल की जाएगी। यह अजीब बात है कि इसे गिट में हटाए गए के रूप में चिह्नित किया गया है ...

केवल दूसरी बार इसे हटाने के बाद, हालांकि गिट अब इसे याद नहीं करता है, फिर भी मैंने इसे वास्तव में हटाने का प्रबंधन किया ताकि git reset और git reset --hard फ़ाइल को पुनर्स्थापित न करें।

किसी कृपया समझा सकते हैं कि कैसे मैं इस राज्य में मिला है और अगर यह Git या सामान्य व्यवहार में एक बग है मैं बहुत यह जानना चाहेंगे।

मेरे suspitions मैं आदेशों कि मैं प्रयोग किया जाता है लेकिन क्या हुआ कुछ इस तरह चला गया के अनुक्रम खो दिया है: फ़ाइल Images/toolbar.png है, और मैं Images फ़ोल्डर में नेविगेट किया हो।

# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  deleted: toolbar.png 
#  deleted: ../images/toolbar.png 
# 

नोट तथ्य यह है कि images फ़ोल्डर बड़े अक्षरों में नहीं है:

बाद मैं फाइल सिस्टम Git से इसे नष्ट कर दिया तो जैसे परिवर्तन का पता! यह विंडोज़ में चलाया जा रहा है जो पथ के मामले को अनदेखा करता है। मुझे लगता है कि इस समस्या का एक हिस्सा ...

मैं वास्तव में उलझन में रहा हूँ, लेकिन मेरी समस्या चला गया है हो सकता है। तो यह पोस्ट केवल जिज्ञासा के रूप में बनी हुई है, हालांकि मैं कहीं भी एसवीएन से रूपांतरण में रहने वाले व्यवहार को दोहराना नहीं कर सकता।

+0

ऐसा लगता है कि गिट आपकी फ़ाइल को ठीक से संसाधित नहीं कर सकता है। क्या आपके फ़ोल्डर नामों से रिक्त स्थान को आजमाएं और निकालें और देखें कि क्या यह ठीक करता है या नहीं? – Devin

+0

संभावित हां, सरल नहीं ... मैं कोशिश करूंगा। – nonsensickle

+0

अभी, मैं एक स्वच्छ भंडार खींचने की कोशिश कर रहा हूं लेकिन मुझे संदेह है कि इससे मदद नहीं मिलेगी। मैं पूरा होने के बाद अंतरिक्ष को हटाने की कोशिश करूंगा लेकिन भंडार छोटा नहीं है। इसके अलावा, रास्ते में रिक्त स्थान के साथ गिट को परेशानी क्यों होगी? – nonsensickle

उत्तर

9

मुझे थोड़ी देर पहले एक ही समस्या थी।

इस फाइल पर पूंजीकरण था, या निर्देशिका यह किसी भी बिंदु पर परिवर्तन में था?

मेरे पास एक पूंजी अक्षर वाला एक निर्देशिका थी जो सभी लोअरकेस में बदल दी गई थी (मान लीजिए कि यह /Foo से /foo तक) चला गया था। यह मुझे वही समस्याएं बताता है जो आपने वर्णित किया है।

जब भी मैं एक फ़ाइल को संशोधित, यह मेरे समान उत्पादन इस को दे दिया:

#  modified: bar.txt 
#  modified: ../Foo/bar.txt 

जहां करने या रीसेट करने के लिए कोई परिणाम का उत्पादन नहीं कर रहा था मैं भी यही समस्या थी।

मुझे लगता है कि इस समस्या का कारण है कि Windows फ़ाइल पथ केस-संवेदी नहीं हैं, लेकिन यूनिक्स होते हैं। चूंकि गिट जैसे इन कमांड लाइन टूल्स यूनिक्स-वाई सिस्टम पर विकसित किए गए हैं, इसलिए वे कभी-कभी इस अंतर को अच्छी तरह से संभाल नहीं पाते हैं, और फ़ाइल को Foo/bar.txt और foo/bar.txt के रूप में जोड़ा जाने पर भ्रमित हो सकता है। मुझे लगता है कि यह गिट को लगता है कि दो अलग-अलग फाइलें हैं, जहां वास्तव में केवल एक ही है।

मेरे अंतिम ठीक तुम्हारा के रूप में ही किया गया था, इतिहास से पूरी निर्देशिका निकालना है, तो फिर से जोड़ने यह (और कभी कभी भी फिर से पूंजीकरण बदलना)। इससे आपके द्वारा वर्णित वही अजीबता भी हुई जहां मुझे इसे लेने से पहले इसे दो बार निकालना पड़ा।

वैसे भी, मैं जानता हूँ कि यह एक निश्चित जवाब नहीं है, लेकिन मैं के बाद से समस्या को पुन: कर लिया है, तो मैं बहुत यकीन है कि यह क्या कारण होता है (कम से कम मेरे लिए) हूँ।

+0

यह वही है जो मैंने अनुभव किया है। मुझे यकीन नहीं है कि यह कहां हुआ लेकिन मुझे यकीन है कि गिट ने यह पता लगाया कि यह SHA1 चेकसम के माध्यम से एक ही फाइल थी लेकिन निर्देशिका अलग थी क्योंकि भ्रमित था ... किसी भी तरह से, आपका एकमात्र उत्तर है जो करीब आता है मेरे पास क्या है हालांकि इसे एक उत्तर के रूप में स्वीकार करने में मुझे खुशी है, खासकर यदि आप इसे पुन: उत्पन्न कर सकते हैं। – nonsensickle

3

मेरे पास एक ही समस्या के साथ दो फाइलें होने के कारण एक ही समस्या थी क्योंकि मेरे कंप्यूटर ने इसे देखा था।

संदेश मैं हो रही है:

# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: images/contact_seller.GIF 
# 

यह हुआ प्रतिबद्ध क्योंकि रेपो की प्रारंभिक मैकबुक कि केस-संवेदी फॉर्मेट हो सके और त्रुटि मेरी आईमैक कि केस-संवेदी स्वरूपित किया गया था पर दिखाई दे रहा था से किया गया था।

केस-संवेदी मशीन पर आप दो फ़ाइलों

SwedishChef$ ls images/contact_seller* 
images/contact_seller.GIF images/contact_seller.gif 

कौन सा दूसरी मशीन पर मान्य नहीं है इसलिए Git इसके बारे में कुछ करना था देख सकता था।

मुझे बस फ़ाइल का नाम बदलना था और उन परिवर्तनों को करना था।

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