yeniden satış devam ediyor. Taahhüt edilemez. Nasıl devam edilir veya durdurulur (iptal edilir)?


140

Koştuğumda:

git status

Bunu görüyorum:

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

Ben yaparken:

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

Görüyorum: yeniden taban uygulamak

Menşe taahhüdü veremem.

git branch

Gösteriler:

* (no branch, rebasing master)
  develop
  master

Sıkıştım. Ne yapacağımı bilmiyorum Yeniden baz almak gerçekten bu kadar uzun sürüyor mu? git rebase --continuehiçbir şey yapmaz. Git statüsünde hiçbir şeyim yok .. Sadece yeniden ödemeyi bekliyorum. Ne yapabilirim?

UDATE: Bu çıktı: git rebase --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 ekle. hiçbir şey yok.

Yanıtlar:


257

Geri ödeme arka planda gerçekleşmez. "Yeniden ödeme devam ediyor", bir yeniden ödeme başlattığınız ve yeniden ödemenin çatışma nedeniyle kesintiye uğradığı anlamına gelir. Rebase'e devam etmeniz ( git rebase --continue) veya iptal etmeniz (git rebase --abort ) gerekir.

Gelen hata mesajının da git rebase --continueönerdiği gibi git'ten boş bir yama ile sonuçlanan bir yama uygulamasını istediniz. Büyük olasılıkla, bu, yamanın zaten uygulandığı ve kullanmaktan vazgeçmek istediğiniz anlamına gelir git rebase --skip.


Gönderiyi isteğinize göre git rebase --continue içerecek şekilde güncelledim.
Joseph Chambers

2
Tamam, o zaman "yeniden tabanla - devam et hiçbir şey yapmaz" yanlıştı. Yardım almak için "git rebase --continue errors aşağıdaki gibi yazmalısınız ...".
Matthieu Moy

3
Bunun belgelenmesi çok kötü bir şekilde, 'git rebase - devam' dediğinizi tekrar ediyor ve bunu sonsuz bir şekilde söyleyeceksiniz.
Jean-Paul

6
git rebase --skip yaptım!
Borzh

Bu, göreceli olarak yeni başlayanlar için bir soru olduğu için (benim gibi), tüm bu koşuşturma konuşmalarından bahsetmeye değer olduğunu düşündüm - yeni bir terminal açmayı ve repoya geri dönmeyi gerektirir ... Bu sayı olmadan benim örneğimde hiçbir şey olmaz bunu yapıyor,
Kdean571

11

Rebase statüsünde kaldım, anladım

On branch master
Your branch is up to date with 'origin/master'.

You are currently rebasing.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working tree clean

ama koşmak git rebase --skipverdierror: could not read '.git/rebase-apply/head-name': No such file or directory .

Koşu rm -fr ".git/rebase-apply" yardımcı oldu.

Not: Tabii ki, bunu yalnızca geri ödemeyi umursamıyorsanız veya artık istemediğiniz bir önceki yeniden ödemeye takılıp kaldıysanız yapın.


9
  • 1. Adım: Devam edin git rebase --continue

  • Adım 2: ÇATIŞMALARI düzeltin ve ardından git add .

  • 1. adıma geri dönün, şimdi no changes ..çalıştır diyorsa, git rebase --skip1. adıma geri dönün

  • Rebase run'dan çıkmak istiyorsanız git rebase --abort

  • Tüm değişiklikler yapıldığında çalıştırın git commit -m "rebase complete"ve bitirdiniz.


--continueİş vermedi, ben bir did kez hiçbir şey ... değişti söyledi --skiptekini olsa da, push. Ben sadece o şeyleri anlamıyorum. Her seferinde işe yarayana kadar tamamen rastgele şeyler yaptığım gibi.
Alexis Wilke

6

Deponuza yeniden baz almasını söylediniz. Görünüşe göre bir taahhütte bulunuyorsunuz (SHA 9c168a5 tarafından tanımlanmıştır) ve sonra yaptınız git rebase masterveya git pull --rebase master.

Şube yöneticisini bu taahhüde yeniden veriyorsunuz. Rebase'i üzerinden sonlandırabilirsiniz git rebase --abort. Bu, yeniden satışa başlamadan önce bulunduğunuz duruma geri döner.


Ben asla yapmam git rebase/pull --rebase master. Sık sık bu duruma düşüyorum ... bir çatışma yüzünden. Ben ... o zaman bu "Rebase modu" girmeye karar verir seyahatseverlerin Git beynini ağrısından dolayı bir çekme yapmak, bir dosyayı değiştirmek benim değişiklikleri geri ve yeni yama boş
Alexis WILKE

6

Bu duruma yakın zamanda girdim. Bir yeniden ödeme sırasında çatışmaları çözdükten sonra, çalıştırmak yerine değişikliklerimi yaptım git rebase --continue. Bu, git statusve git rebase --continuekomutlarını çalıştırdığınızda gördüğünüz mesajların aynısını verir . git rebase --abortRebase'i çalıştırıp ardından yeniden çalıştırarak sorunu çözdüm. Biri muhtemelen yeniden ödemeyi de atlayabilirdi, ancak beni hangi durumun içinde bırakacağından emin değildim.

$ 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

--abort(+1) 'e ek olarak , artık --quit( stackoverflow.com/a/41363262/6309 )
VonC

Çatışmaları düzelttikten sonra. sonra git commit'i arayın. başka bir iş yapın, sonra git commit'i tekrar arayın. Bu yöntemi kullanırsanız git rebase --abort, commit ihtilafından sonra yaptığınız tüm işler istenecektir. Bu yüzden dikkatli olun
Jin

3

Eğer git rebase --abortçalışmıyor ve hala olsun

hata: '.git / rebase-apply / head-name' okunamadı: Böyle bir dosya veya dizin yok

Tür:

git rebase --quit

0

Ben kurulum benim gitiçin autorebase a üzerindegit checkout

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

Aksi takdirde, şubeler arasında geçiş yaptığınızda otomatik olarak birleşiyor, ki bunun varsayılan olarak olası en kötü seçim olduğunu düşünüyorum.

Bununla birlikte, bunun bir yan etkisi var, bir şubeye geçtiğimde ve sonra bir çatışması olduğu her seferinde git cherry-pick <commit-id>bu garip duruma düşüyorum.

Aslında iptal etmem gerekiyor rebase, ama önce çatışmayı düzelttim, git add /path/to/filedosyayı (bu durumda çatışmayı çözmenin çok garip başka bir yolu mu ?!), sonra bir git commit -i /path/to/file. Şimdi şunu iptal edebilirim 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>

İkincisi git commit .kürtajdan geliyor gibi görünüyor. Daha rebaseönce iptal etmem gerektiğini anlarsam cevabımı düzelteceğim .

--forceDiğer kaydedilmesini atlayıp hem dalları değilse itme gereklidir düzgün (hem diğerinden kaydedilmesini eksik).


"Aksi takdirde, şubeler arasında geçiş yaptığınızda otomatik olarak birleşir" - Um, hayır. Git, dalları değiştirdiğinizde herhangi bir birleştirme veya yeniden yapılandırma yapmaz. yeni şubeler için autosetupmergenasıl git pullyapılandırıldığı ile ilgilidir .
Marnen Laibow-Koser

Bu sorunla mücadele ettiğim şu anda, kesinlikle çeşitli kodların bir şekilde birleştirilmesini sağladı. Mevcut kurulumum bu sorunu atlıyor gibi görünüyor. Ayrıca, geçiş yapmaya çalışmadan önce mevcut şubenize bir commit + push yapmama sorunu da vardır.
Alexis Wilke

Git, taahhüt edilmeyen değişikliklerinizin dal değiştirmeyi engelleyip engellemeyeceğini size söyleyecektir, bu yüzden endişelenecek çok şey yok, değil mi? Yoksa başka bir şeyden mi bahsediyorsun?
Marnen Laibow-Koser

0

İçin bir başka seçenek DÜÞ / SKIP / DEVAM gelen IDE

VCS> Git> Yeniden Başlatmayı İptal Et

görüntü açıklamasını buraya girin


0

Benimki, BitBucket'tan çıkan bir hataydı. Ran git am --skipdüzeltti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.