2011-03-30 11 views
133

मैंने एक साझा गिट भंडार से git pull किया था, लेकिन git revert की कोशिश करने के बाद कुछ वास्तव में गलत हो गया। यहां स्थिति अब है:घातक: गिट-राइट-पेड़: त्रुटि निर्माण पेड़

$ git stash 
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: needs merge 
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: needs merge 
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: needs merge 
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: needs merge 
Utilities/socketxx/socket++/sockstream.cpp: needs merge 
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: needs merge 
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: needs merge 
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: needs merge 
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: needs merge 
Utilities/socketxx/socket++/sockstream.cpp: needs merge 
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (2aafac967c35fa4e77c3086b83a3c102939ad168) 
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (78cc95e8bae85bf8345a7793676e878e83df167b) 
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (2524db713fbde0d7ebd86bfe2afc4b4d7d48db33) 
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (4bb4ba78973091eaa854b03c6ce24e8f4af9e7cc) 
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (ad0982b8b8b4c4fef23e69bbb639ca6d0cd98dd8) 
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (4868371b7218c6e007fb6c582ad4ab226167a80a) 
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (f7a1b386b5b13b8fa8b6a31ce1258d2d5e5b13c5) 
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (6ce299c416fbb3bb60e11ef1e54962ffd3449a4c) 
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (75c8043a60a56a1130a34cdbd91d130bc9343c1c) 
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: unmerged (79c2843f2649ea9c87fa57662dafd899a5fa39ee) 
... 
fatal: git-write-tree: error building trees 
Cannot save the current index state 

क्या यह सब रीसेट करने का कोई तरीका है?

धन्यवाद

उत्तर

417

उपयोग:

git reset --mixed

बजाय

git reset --hard। आप कोई भी परिवर्तन नहीं खोएंगे।

+5

यह उत्तर अधिक अपवर्तनीय हकदार है! –

+0

हां निश्चित रूप से इसके अधिक प्रासंगिक –

+1

बहुत बढ़िया! मुझे नहीं पता था - मिश्रित –

8

मैं प्रयोग किया है:

git reset --hard 

मैं कुछ परिवर्तन खो दिया है, लेकिन यह ठीक है।

+6

बस एक नोट: [ 'Git revert'] (http://www.kernel.org/pub/software/scm/git/docs/git-revert.html) अतीत से परिवर्तन मर्ज करने के लिए प्रयास करता है ; घड़ी को रिवाइंड करने के लिए आपने सही ढंग से 'गिट रीसेट' का उपयोग किया है। यह दुर्भाग्यपूर्ण है कि 'गिट स्टैश' मर्ज विवादों के साथ काम नहीं करता है। स्पष्टीकरण के लिए –

+0

धन्यवाद! – malat

+0

ओएमजी! इसने काम कर दिया। अभी क्या हुआ? ;) – nopper

4

शायद आपके गिट भंडार में कुछ अनमोल पथ हैं जिन्हें आपको छेड़छाड़ से पहले हल करना है।

+1

इससे मुझे मदद मिली ताकि मैं इसे +1 दूंगा। लेकिन मैंने एक और विस्तारित उत्तर दिया। –

9

मैलाट की प्रतिक्रिया पर अनुवर्ती करने के लिए, आप एक पैच बनाकर परिवर्तन खोने से बच सकते हैं और बाद में इसे फिर से लागू कर सकते हैं।

git diff --no-prefix > patch.txt 
patch -p0 < patch.txt 

सुरक्षा के लिए अपने पैच को भंडार फ़ोल्डर के बाहर स्टोर करें।

+0

यह मुझे दिया: SDGL132d9f4b4: गड़बड़-सामान्य dstromberg $ पैच -p0 dstromberg

+0

मुझे लगता है कि आपको उस निर्देशिका में फिर से पैच को 'mv' करना चाहिए जहां से आपने इसे बनाया था। 1. 'गिट diff' 2.' एमवी patch.txt/tmp'3। 'गिट स्टेश '4.' एमवी/टीएमपी/पैच.txt .' 5. 'पैच-पी 0' – HerrSerker

20

यह मेरे लिए काम किया:

करो

$ git status 

और जाँच अगर आपके पास Unmerged paths

# Unmerged paths: 
# (use "git reset HEAD <file>..." to unstage) 
# (use "git add <file>..." to mark resolution) 
# 
# both modified:  app/assets/images/logo.png 
# both modified:  app/models/laundry.rb 

उन्हें उनमें से प्रत्येक को git add साथ ठीक करें और git stash फिर कोशिश करें।

git add app/assets/images/logo.png 
+3

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

+0

मैं इस रणनीति को 'गीट रीसेट - मिश्रित' से बेहतर नहीं समझता, लेकिन यह काम करता था, और मेरे मामले के लिए बेहतर फिट लग रहा था क्योंकि मुझे 'गिट रिवर्ट' की बजाय 'गिट स्टैश' के बाद त्रुटि मिली। – Mars

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