Neden şubeleri değiştiremiyorum?


81

Git'te dalları değiştirmeye çalışıyorum ama şu hata mesajını alıyorum:

error: you need to resolve your current index first

Git xcode4 altında kullanıyorum

git status
# On branch DateCode
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
#
no changes added to commit (use "git add" and/or "git commit -a")
Frappuccinos-MacBook-Pro:whereami

# Birleştirilmemiş yollar: # (aşamayı kaldırmak için "git reset HEAD <file> ..." kullanın) # (çözünürlüğü işaretlemek için "git add / rm <file> ..." kullanın) #
lampShade

lütfen sorunuzu düzenleyerek bu bilgileri yapıştırın, yorumlarda okunamaz.
Mat

git reset {{currentBranchName}}o git checkout . zaman sorununuzu çözecek
muthukumar selvaraj

Bu sorunuzu yanıtlıyor mu? Git birleştirme hataları
Henke

Yanıtlar:


96

Git durumunda listelenen birleştirmelerden herhangi birini istemiyorsanız bunu deneyin:

git reset --merge

Bu, dizini sıfırlar ve çalışma ağacındaki <commit>ve arasında farklı olan dosyaları günceller HEAD, ancak dizin ve çalışma ağacı arasında farklı olanları (yani, eklenmemiş olanları) tutar.

<commit>Dizin ile arasındaki farklı bir dosyada aşamalı olmayan değişiklikler varsa - sıfırlama iptal edilir.

Bununla ilgili daha fazla bilgi - https://www.techpurohit.com/list-some-useful-git-commands & Doc bağlantısı - https://git-scm.com/docs/git-reset


53

Sen ile bitirmek both modifiedçıkışında git statusbir birleştirme ile üretilen çakışma olsaydı. git, bu çakışmaları çözene kadar dalı değiştirmenize izin vermiyor. Bu dosyayı düzenlerseniz, içinde bazı çakışma işaretleri görmelisiniz - git kılavuzunda bu çakışmaları çözmek için bir kılavuz var . (Kernel.org şu anda kapalı olduğundan, bunun yerine bu kılavuzu burada bulabilirsiniz .)

Alternatif olarak, birleştirme işleminin bir hata olduğunu düşünüyorsanız, bunu aşağıdakilerle geri alabilirsiniz: git reset --merge


19

Git'in olağanüstü olduğunu söylediği değişiklikleri umursamıyorsanız, zorla kontrol yapabilirsiniz.

git checkout -f {{insert your branch name here}}


3
Bu tam olarak ihtiyacım olan şeydi - Birleştirmenin birçok çatışmada başarısız olduğu bir test şubem vardı ve sadece şubeyi atmak istedim. İyi bir şubeye geri dönemedim (ödeme başarısız oldu ve git reset --mergeayrıca başarısız oldu). Ama checkout -fharika çalıştı.
Chad

6

Uzaktan kumandadan yeni dosyaları güncellerken bu mesajı aldım ve dizinde hata oluştu. Dizini düzeltmeye çalıştı, ancak Xcode 4.5, GitHub.app (103) ve GitX.app (0.7.1) aracılığıyla çözümleme başarısız oldu. Ben de bunu yaptım:

git commit -a -m "your commit message here"

git endeksini atlayarak çalıştı.

Git ve Xcode'u anlamama yardımcı olan iki blog yazısı:

  • Xcode 4.5 üzerinde Ray Wenderlich ve
  • Oliver Steele, 2008'den itibaren


  • 6

    şubenizi HEAD ile sıfırlayabilirsiniz

    git reset --hard branch_name
    

    daha sonra yerelden uzak olmayan dalları al ve sil,

    git fetch -p 
    

    1

    Dalı değiştirmeden önce kaydedilmemiş değişiklikleri gerçekleştirmeniz veya yok etmeniz gerekir.

    Kaydedilmemiş değişikliklerin kaldırılacağı anlamına geliyorsa Git, dalı değiştirmenize izin vermez.


    Hata ve git statusçıktı, bunun yalnızca dal değiştirilerek kaybedilecek çalışma ağacındaki değişiklikler olmadığını gösterir - bunlar, bir birleştirmenin başarısız olduğunu ve dizindeki çakışmaların çözülmesi gerektiğini belirtir.
    Mark Longair

    1

    Dosya her ikisi tarafından da değiştirildiğinden, ya onu eklemeniz gerekir:

    git add Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
    

    Veya yıldaki değişiklikleri göz ardı etmek istiyorsanız,

    git reset HEAD Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
    

    Bundan sonra şubenizi değiştirin.

    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.