Lütfen bu birleştirmenin neden gerekli olduğunu açıklamak için bir taahhüt mesajı girin, özellikle güncelleştirilmiş bir akış yukarı bir konu dalıyla birleştiriliyorsa


515

Git kullanıyorum. Uzak bir depodan bir çekim yaptım ve bir hata mesajı aldım:

Lütfen bu birleştirmenin neden gerekli olduğunu açıklamak için,
özellikle güncelleştirilmiş bir akış yukarı bir konu dalıyla birleştirilirse, açıklayan bir mesaj girin .

Bir mesaj yazmaya ve basmaya çalışıyorum Enterama hiçbir şey olmuyor.

Git / Terminal'e mesajımı yazdığımı nasıl söyleyebilirim?

OS X'te Terminal kullanıyorum.


3
GIT'nizin önceden yapılandırılmış bir şablonu açacak şekilde yapılandırıldığı ve şablonun varsayılan düzenleyici (vi / vim) aracılığıyla açıldığı anlaşılıyor.
Shunya

Bu birleştirmeyi iptal et ve git pull --rebase'i kullanmayı dene.
Ankush Jain

3
Bana "Shift ZZ" sorun çözer
papacico

Yanıtlar:


1189

Git hata mesajı değil, git varsayılan düzenleyicinizi kullandığından editör.

Bunu çözmek için:

  1. "i" ye basın (eklemek için i)
  2. birleştirme mesajınızı yazın
  3. "esc" tuşuna basın (kaçış)
  4. ": wq" yaz (yaz ve çık)
  5. sonra enter tuşuna basın

7
Tamam, ama bu editörünün viya da olduğunu varsayar vim.
Gabriele Petronella

106
bu hella karmaşık
Connor Leech

92
Nefret ediyorum LordVi
Sobiaholic

153
Eğer herkese yardım ederse, bunu hatırlamanızın yolu "i" nin "insert" için olması, "esc" girişin çıkmasıdır ve ": wq" sadece "write" ve "quit" tir.
Josh Beam

83
Bu da ↑↑ ↓↓ ← → ← → BA
Wesley Smith

39

Aslında bu bir hata değil! Bu, birleştirmeyi işaretlemek için bir mesaj girmeniz gerektiği anlamına gelir. İşletim sistemim Ubuntu 14.04.Aynı işletim sistemini kullanıyorsanız, bunu aşağıdaki gibi yapmanız yeterlidir:

  1. Bir mesaj yazın

  2. CtrlCO

  3. Dosya adını yazın ("Merge_feature01" gibi) ve tuşuna basın. Enter

  4. CtrlX çıkışa doğru

Şimdi .git'e giderseniz ve "Merge_feature01" dosyasını bulursanız, bu aslında birleştirme günlüğüdür.


6
Acaba birisi bunu nasıl bilir? Bunun nasıl çalıştığı çok garip. Bunu cevapladığınız için teşekkürler.
Adrian Carr

@ScottyBlades neden dünyada? soru Etiketlenmiş osx, ve Ubuntu (kullanarak Git için tamamen farklı bir kurulum kurar nasıl Bu cevap kaygılar nanoveya picoOS X kurulumu için geçerli değildir). Hiçbir şekilde genelleştirilemez ve aynı zamanda nasıl çalıştığı hakkında fikir vermez, bu nedenle @AdrianCarr tarafından bırakılan yorum. Şimdi çok daha iyi cevaplar var.
oligofren

27

tl; dr Düzenleyiciyi Sublime veya Atom gibi daha güzel bir şeye ayarla

Burada nice , sevdiğiniz veya daha kullanıcı dostu bir editör anlamında kullanılır .

Temel sorun Git'in varsayılan olarak çoğu insan için kullanmak için çok sezgisel olmayan bir düzenleyici kullanmasıdır: Vim. Şimdi, beni yanlış anlamayın, Vim'i seviyorum ve bir kenara ayırabilirken (bir ay gibi) Vim'i öğrenmek ve bazı insanların Vim'in varolan en büyük editör olduğunu düşündüğünü anlamaya çalışmak için ayırabilseniz de, daha hızlı bir yol var. Bu sorunu çözme :-)

Düzeltme şifreli komutları ezberlemek değil , kabul edilen cevapta olduğu gibi , Git'i sevdiğiniz ve anladığınız bir düzenleyiciyi kullanacak şekilde yapılandırmaktır! Bu seçeneklerden birini yapılandırmak gerçekten çok basit

  1. git config ayarı core.editor(proje başına veya global olarak)
  2. VISUALveyaEDITOR çevre değişkeni (aynı zamanda diğer programlar için bu işleri)

Birkaç popüler editör için ilk seçeneği ele alacağım, ancak GitHub'ın mükemmel bir birçok editör için de rehberi var .

Atom'u kullanmak için

Doğrudan dokümanlarından bir terminale girin: git config --global core.editor "atom --wait"

Git normal olarak editör komutunun bitmesini bekler, ancak Atom hemen bir arka plan işlemine çatal olduğundan, siz vermedikçe bu çalışmaz --wait seçenek .

Yüce Metin kullanmak için

Atom durumunda olduğu gibi, arka plana çatallanmaması gerektiğini bildirmek için özel bir bayrağa ihtiyacınız vardır:

git config --global core.editor "subl -n -w"


Vim bir ay sürmez. iki gün sürer ve zaman zaman ihtiyacınız olan kullanışlı bir hile sayfası tuttuğunuz sürece asla unutmazsınız.
user264431

22

Sadece yap,

CTRL + X

CTRL + C

Dosyayı kaydetmenizi isteyecek, tuşuna basın Y, işiniz bitti.


Varsayılan düzenleyiciniz "pico" veya "nano" ise, varsayılan düzenleyiciniz vim ise yukarıdaki yorumlar kullanılmalıdır.
JacKeown

7

Burada, bu birleşmeyi neden yaptığınız için ileride başvurmak üzere birleştirmenizle bağlantı kuran bir ileti istemektedir.

press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter

6

Bunun yerine, CtrlZgidip kesinliği yeniden deneyebilirsiniz, ancak bu sefer ondan sonra tırnak içinde bir mesajla "-m" ekleyin, o zaman size bu sayfayı sormadan işlem yapar.


3
lol bu kesinlikle OP sorunu çözecekti. git commit -m 'I did blah'
James M. Lay

Bir linux terminalinde git sürüm 1.7.11.4 var ve git command -m "message" veya git commit --message "message" vermeme rağmen, hala editör zaman zaman açılır, bir mesaj ister. "-M" anahtarının neden göz ardı edildiğini bilen var mı?
pglpm

4

Yerel deponuz az sayıda işlem olduğundan, git uzaktan kumandanızı yerel repo ile birleştirmeye çalışır. Bu birleştirme yoluyla ele alınabilir, ancak sizin durumunuzda belki de rebase arıyorsunuz, yani taahhüdünüzü en üste ekleyin. Bunu ile yapabilirsiniz

git rebase veya git pull --rebase

İşte git pull& arasındaki farkı açıklayan iyi bir makale git pull --rebase.

https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


0

Birleştirme ile android stüdyo terminalinde bir mesaj nasıl eklenir. Bu mac kullanıcıları içindir.

  • Birinci adım - "i" ye basın
  • İkinci adım - "#" dan sonra size mesaj girin
  • Üçüncü adım - "esc" tuşuna basın
  • Dördüncü adım - en altta ": wq" yazın
  • Beşinci adım- "Enter" tuşuna basın

Birleştirme işleminiz bitti, daha sonra yerel bölgenize çekin veya yeni bir şube oluşturun.


0

Git hata mesajı değil, editör git varsayılan düzenleyicinizi kullanıyor.

Bunu çözmek için:

  1. “i” ye basın
  2. birleştirme mesajınızı yazın
  3. "esc" tuşuna basın
  4. “: wq” yaz
  5. ve enter tuşuna basın

açıklama

Bunu hatırlamanın yolu “i” nin “insert”, “esc” ise ekleme işleminin çıkması ve “: wq” sadece “yazma” ve “çıkma” dır.


0

bu bir hata değil. bu birleştirme için bir masör eklemelisin

bunu çözmek için:

  1. maskenizi eklemek için "i" ye basın
  2. masözünü yaz
  3. "esc" tuşuna basın
  4. write:: wq "(massej ve çıkışı kaydetmek için yazın ve çıkın)
  5. Enter tuşuna basın"

-1

Git için yeni olduğum için hatayı buldum, doğru sözdizimini girip girmediğinizi kontrol etmelisiniz

bir hata yaptım ve yazdım git commit

ve aynı hatayı aldı

kullanım git commit -m 'some comment'

ve sayfayı görmeyeceksin

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.