क्या ऐसा करने का कोई तरीका है git pull
जो निर्देशिका को उड़ाने और प्रदर्शन करने के बिना किसी भी स्थानीय फ़ाइल परिवर्तनों को अनदेखा करता है git clone
?
rm -rf local_repo && git clone remote_url
।
क्या ऐसा करने का कोई तरीका है git pull
जो निर्देशिका को उड़ाने और प्रदर्शन करने के बिना किसी भी स्थानीय फ़ाइल परिवर्तनों को अनदेखा करता है git clone
?
rm -rf local_repo && git clone remote_url
।
जवाबों:
यदि आप चाहते हैं कि आप स्थानीय परिवर्तनों को अधिलेखित करना चाहते हैं, तो मर्ज कर रहे हैं जैसे कि काम करने वाले पेड़ साफ थे, अच्छी तरह से, काम करने वाले पेड़ को साफ करें:
git reset --hard
git pull
अगर वहाँ अनियंत्रित स्थानीय फ़ाइलें आप git clean
उन्हें हटाने के लिए उपयोग कर सकते हैं। का प्रयोग करें git clean -f
ट्रैक न किए गए फ़ाइलें निकालने के लिए, -df
ट्रैक न किए गए फ़ाइलों और निर्देशिकाओं को हटाने के लिए, और-xdf
को हटाने के लिए अनट्रेक्ड या इग्नोरड फाइल्स या डाइरेक्टरीज़ ।
यदि दूसरी ओर आप स्थानीय संशोधनों को किसी भी तरह रखना चाहते हैं, तो आप खींचने से पहले उन्हें छिपाने के लिए छिपाने की जगह का उपयोग करेंगे, फिर उन्हें आगे की ओर फिर से लगाएँ:
git stash
git pull
git stash pop
मुझे नहीं लगता कि इससे किसी भी तरह से बदलावों की वस्तुतः अनदेखी की जा सकती है, हालांकि - पुल का आधा मर्ज है, और इसे लाने वाले संस्करणों के साथ सामग्री के प्रतिबद्ध संस्करणों को मर्ज करने की आवश्यकता है।
git reset
आपकी फ़ाइलें अभी भी रिमोट से भिन्न हैं, तो stackoverflow.com/questions/1257592/…
git reset --hard
पूर्व को प्रभावित करता है, बाद को नहीं। यदि आप रिमोट की स्थिति में पूरी तरह से रीसेट करना चाहते हैं, git reset --hard origin/<branch>
- लेकिन अक्सर और इस मामले में, वे दो काम करते हैं जो आप मूल से आगे हैं जो आपके द्वारा किए गए काम हैं, न कि कुछ जिसे आप फेंकना चाहते हैं।
मेरे लिए निम्नलिखित काम किया:
(1) पहले सभी परिवर्तन लाएँ:
$ git fetch --all
(२) फिर गुरु को रीसेट करें:
$ git reset --hard origin/master
(3) खींच / अद्यतन:
$ git pull
आप बस एक कमांड चाहते हैं जो ठीक वैसा ही परिणाम दे rm -rf local_repo && git clone remote_url
, जैसा सही है? मुझे भी यह सुविधा चाहिए। मुझे आश्चर्य है कि git ऐसी कमांड (जैसे git reclone
या git sync
) प्रदान नहीं करता है, न ही svn इस तरह की कमांड (जैसे svn recheckout
या svn sync
) प्रदान करता है ।
निम्नलिखित कमांड आज़माएं:
git reset --hard origin/master
git clean -fxd
git pull
git clean -fxd
फ़ाइलों को .gitignore
भी हटाता है ।
कमांड बलो हमेशा काम नहीं करेगा । यदि आप बस करते हैं:
$ git checkout thebranch
Already on 'thebranch'
Your branch and 'origin/thebranch' have diverged,
and have 23 and 7 different commits each, respectively.
$ git reset --hard
HEAD is now at b05f611 Here the commit message bla, bla
$ git pull
Auto-merging thefile1.c
CONFLICT (content): Merge conflict in thefile1.c
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
और इसी तरह...
करने के लिए वास्तव में , से शुरू thebranch डाउनलोड करने और अपने सभी स्थानीय को ओवरराइट करते, बस कार्य करें:
$ git checkout thebranch
$ git reset --hard origin/thebranch
यह ठीक काम करेगा।
$ git checkout thebranch
Already on 'thebranch'
Your branch and 'origin/thebranch' have diverged,
and have 23 and 7 different commits each, respectively.
$ git reset --hard origin/thebranch
HEAD is now at 7639058 Here commit message again...
$ git status
# On branch thebranch
nothing to commit (working directory clean)
$ git checkout thebranch
Already on 'thebranch'
पर देखो Git गुप्त कोष में पिछले प्रतिबद्ध करने के लिए एक "गुप्त कोष में फाइल" और वापस लाएं में अपने स्थानीय परिवर्तन के सभी डाल करने के लिए। उस बिंदु पर, आप अपने अटके हुए परिवर्तन लागू कर सकते हैं, या उन्हें छोड़ सकते हैं।
यदि आप लिनक्स पर हैं:
git fetch
for file in `git diff origin/master..HEAD --name-only`; do rm -f "$file"; done
git pull
फॉर लूप उन सभी ट्रैक की गई फ़ाइलों को हटा देगा जो स्थानीय रेपो में बदली जाती हैं, इसलिए git pull
बिना किसी समस्या के काम करेंगी।
इसके बारे में सबसे अच्छी बात यह है कि केवल ट्रैक की गई फाइलें ही रेपो की फाइलों से अधिलेखित हो जाएंगी, अन्य सभी फाइलें अछूती रह जाएंगी।
यह मेरे लिए काम किया
git fetch --all
git reset --hard origin/master
git pull origin master
स्वीकृत उत्तर के साथ मुझे संघर्ष संबंधी त्रुटियां मिलती हैं
मैं आमतौर पर करता हूं:
git checkout .
git pull
प्रोजेक्ट के रूट फ़ोल्डर में।
.gitignore
"अवांछित फ़ाइलों को जोड़ने से .itignore तब तक काम करता है जब तक कि आपने शुरू में उन्हें किसी भी शाखा के लिए प्रतिबद्ध नहीं किया है।"
इसके अलावा आप चला सकते हैं:
git update-index --assume-unchanged filename
https://chamindac.blogspot.com/2017/07/ignoring-visual-studio-2017-created.html