2015-04-27 4 views
54

जब मैं चलाएँ:पुनर्जन्म। प्रतिबद्ध नहीं कर सकता कैसे आगे बढ़ें या रोकें (निरस्त)?

git status 

मैं इस देखें:

rebase in progress; onto 9c168a5 
You are currently rebasing branch 'master' on '9c168a5'. 
(all conflicts fixed: run "git rebase --continue") 
nothing to commit, working directory clean 

जब मैं कार्य करें:

ls `git rev-parse --git-dir` | grep rebase || echo no rebase 

मैं देख रहा हूँ: rebase से लागू

मैं प्रतिबद्ध नहीं कर सकते हैं उत्पत्ति के लिए।

git branch 

शो:

* (no branch, rebasing master) 
    develop 
    master 

मैं अटक कर रहा हूँ। मुझे नहीं पता क्या करना है? क्या यह वास्तव में पुनर्जीवित करने में लंबा समय लगता है? git rebase --continue कुछ भी नहीं करता है। मेरे पास गिट स्थिति में कुछ भी नहीं है .. मैं बस रिबेस के लिए इंतजार कर रहा हूं। मैं क्या कर सकता हूँ?

UDATE: Git --continue

Applying: no message 
No changes - did you forget to use 'git add'? 
If there is nothing left to stage, chances are that something else 
already introduced the same changes; you might want to skip this patch. 

When you have resolved this problem, run "git rebase --continue". 
If you prefer to skip this patch, run "git rebase --skip" instead. 
To check out the original branch and stop rebasing, run "git rebase --abort". 

Git जोड़ने rebase: इस का उत्पादन होता है। पास कुछ नहीं।

उत्तर

101

पृष्ठभूमि में रीबेस नहीं होता है। "प्रगति में वापसी" का अर्थ है कि आपने एक रिबेस शुरू किया है, और संघर्ष के कारण रिबेस में बाधा आई है। आपको (git rebase --continue) को फिर से शुरू करना होगा या इसे निरस्त करना होगा (git rebase --abort)।

git rebase --continue से त्रुटि संदेश के रूप में, आपने एक पैच लागू करने के लिए गिट से पूछा जो परिणामस्वरूप खाली पैच में होता है। सबसे अधिक संभावना है, इसका मतलब है कि पैच पहले ही लागू हो चुका था और आप इसे git rebase --skip का उपयोग करके छोड़ना चाहते हैं।

+0

मैंने आपके अनुरोध के अनुसार गिट रिबेस --continue शामिल करने के लिए पोस्ट को अपडेट किया। –

+0

ठीक है, फिर "यह rebase --continue कुछ भी नहीं करता है" गलत था। सहायता प्राप्त करने के लिए आपको "गिट रिबेस - कॉन्फ़िगर्यू त्रुटियों को निम्नानुसार लिखा जाना चाहिए" लिखा होगा। –

+2

इसका दस्तावेज़ीकरण बहुत बुरी तरह से है, यह दोहराता रहता है कि आप 'रिटेज - कॉन्टिन्यू' गिट करते हैं और आप इसे कहने के अनंत तरीके से समाप्त हो जाएंगे। –

4

आपने अपने भंडार को पुनर्जीवित करने के लिए कहा था। ऐसा लगता है कि आप एक प्रतिबद्ध थे (SHA 9c168a5 द्वारा पहचाना गया) और फिर git rebase master या git pull --rebase master किया था।

आप उस प्रतिबद्धता पर शाखा मास्टर को दोबारा दे रहे हैं। आप git rebase --abort के माध्यम से रीबेस समाप्त कर सकते हैं। यह राज्य में वापस आ जाएगा कि आप रिबेजिंग शुरू करने से पहले थे।

2

मुझे हाल ही में इस राज्य में मिला। एक rebase के दौरान संघर्ष को हल करने के बाद, मैंने git rebase --continue चलाने के बजाय, मेरे परिवर्तन किए। यह आपके द्वारा देखे गए वही संदेश उत्पन्न करता है जब आपने अपना git status और git rebase --continue आदेश चलाया था। मैंने git rebase --abort चलाकर इस मुद्दे को हल किया, और फिर रीबेस को फिर से चलाया। एक संभावना यह भी नहीं तो एक git checkout

# in my ~/.gitconfig file 
[branch] 
    autosetupmerge = always 
    autosetuprebase = always 

पर रिबेस को छोड़ सकता है, लेकिन मुझे यकीन है कि क्या कहा गया है कि मुझ में छोड़ना होगा नहीं था।

$ git rebase --continue 
Applying: <commit message> 
No changes - did you forget to use 'git add'? 
If there is nothing left to stage, chances are that something else 
already introduced the same changes; you might want to skip this patch. 

When you have resolved this problem, run "git rebase --continue". 
If you prefer to skip this patch, run "git rebase --skip" instead. 
To check out the original branch and stop rebasing, run "git rebase --abort". 

$ git status 
rebase in progress; onto 4df0775 
You are currently rebasing branch '<local-branch-name>' on '4df0775'. 
    (all conflicts fixed: run "git rebase --continue") 

nothing to commit, working directory clean 
+0

'--abort' (+1) के अतिरिक्त, अब आपके पास' --quit' (http://stackoverflow.com/a/41363262/6309) है – VonC

0

मैं सेटअप मेरे gitautorebase, यह जब आप शाखाओं के बीच स्विच करते हैं तो स्वचालित रूप से विलीन हो जाता है, जो मुझे लगता है कि डिफ़ॉल्ट रूप से सबसे खराब संभव विकल्प है।जब मैं एक शाखा के लिए स्विच और फिर git cherry-pick <commit-id> मैं हर बार यह एक संघर्ष है इस अजीब राज्य में समाप्त

बहरहाल, यह एक पक्ष प्रभाव है।

मैं वास्तव में rebase निरस्त करने के लिए है, लेकिन पहले मैं संघर्ष को ठीक, git add /path/to/file फ़ाइल (इस मामले ?! में संघर्ष का समाधान करने के लिए एक बहुत ही अजीब तरह से), तो एक git commit -i /path/to/file है। अब मैं गर्भपात कर सकते हैं rebase:

git checkout <other-branch> 
git cherry-pick <commit-id> 
...edit-conflict(s)... 
git add path/to/file 
git commit -i path/to/file 
git rebase --abort 
git commit . 
git push --force origin <other-branch> 

दूसरा git commit . बीच में बंद करें से आते हैं लगता है। अगर मुझे पता चलता है कि मुझे rebase जल्द ही रोकना चाहिए तो मैं अपना जवाब ठीक कर दूंगा। यदि आप अन्य प्रतिबद्ध छोड़

धक्का पर --force आवश्यकता होती है और दोनों शाखाओं चिकनी (दूसरे से दोनों याद कर रहे हैं प्रतिबद्ध) नहीं हैं।

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