SORU
2 EYLÜL 2015, ÇARŞAMBA


Karmaşık Gıt Gıt şube adı tüm komutları kırdı

Aşağıdaki komut ile master bir şube oluşturmak için çalışıyordum

git branch SSLOC-201_Implement___str__()_of_ProductSearchQuery

Git aniden yanıt vermemeye başladığında. () çıkmamış öyle bir şey yapmış olmalı sanırım. Herhangi bir Git komutu çalıştırmak için çalıştığım zaman aynı hatayı alıyorum:

git:176: command not found: _of_ProductSearchQuery

git sayı sonra her zaman bir tür komut artması ()

Herkes neler olduğunu açıklayabilir mi? Ve nasıl normale dönerim? Bu şube silmek mümkün olmak isterdim ama Git benim için işe yaramaz.

CEVAP
2 EYLÜL 2015, ÇARŞAMBA


Sorun

Herkes neler olduğunu açıklayabilir mi? [...] Bu şube silmek mümkün olmak isterdim ama Git benim için işe yaramaz.

Çalıştırarak

git branch SSLOC-201_Implement___str__()_of_ProductSearchQuery

zsh,hiç bir şube oluşturduk. Bunun yerine, yanlışlıkla üç tanımladınızkabuk işlevleri, git, branch, ve onların parametreleri (varsa) görmezden gelen ve _of_ProductSearchQuery olan SSLOC-201_Implement___str__ denir. Bu, yerleşik kabuk komutu varolan tüm kabuk işlevleri listeler functions adlı çağırarak ne oldu: gerçekten de olduğunu kendiniz kontrol edebilirsiniz

$ functions                                                     
SSLOC-201_Implement___str__ () {
    _of_ProductSearchQuery
}
branch () {
    _of_ProductSearchQuery
}
git () {
    _of_ProductSearchQuery
}

Diğer iki kabuk işlevleri sorunlu olmasa da, ne yazık kikabuk işlevi "" gölgeler şimdi . git denir ^em>iyi niyetli15* *emrediyorum!

$ which git
git () {
    _of_ProductSearchQuery
}
# but the real "git" is a binary file that lives in /usr/local/bin/git (or some similar path)

Bu nedenle, daha sonra hata iletisi alırsınız

command not found: _of_ProductSearchQuery

ne zaman sen bir Git komutu, *18 örneğin*, git status, vb çalıştırmayı deneyin. (varsayarak, tabii ki, hiçbir komut _of_ProductSearchQuery adı var).

Yan not

[...] Aynı hatayı alıyorum:

git:176: command not found: _of_ProductSearchQuery

git sayı sonra her zaman bir tür komut artması ()

Bu rakam sadece HISTCMD, tutan bir ortam değişkeni değerine karşılık gelir

[t]o bir etkileşimli kabuk içinde tarihi olay sayısı, diğer bir deyişle $HISTCMD okunacak neden komutu için olay sayısı mevcut.

Daha fazla ayrıntı için zsh manual bkz.

Çözüm

Ve nasıl normale dönerim?

Sadece silmek sorunlu kabuk işlevi (ve bunu yaparken kazara oluşturulmuş, diğer ikisi):

unset -f git
unset -f branch SSLOC-201_Implement___str__

Sonra her şey güzel olacak.


Şube adlandırma ipuçları

Özel bir kabuk karakterlerden kaçının

Evet, yorumlarda belirttiği gibi, parantez Git branch adları geçerli karakterler; sadece adını uygun bir alıntı yapmak gerek, örneğin

$ git branch 'foo()bar'
$ git branch
  foo()bar
* master
$ git checkout 'foo()bar'
Switched to branch 'foo()bar'

Ancak, bu tür isimler alıntıher zamankomut satırı olarak kullanılan bağımsız değişkenler referans isimleri kaçının parantez için sizi ikna edecektir. Daha genel olarak, (mümkün olduğu kadar) kabukları özel bir anlamı, bu gibi sürprizlerle önlemek için, karakterleri kaçınmalısınız.

Basit şube adları kullanın

Şube adları kısa ve tatlı neyse tutmalı. Uzun açıklamalar gibi

-201_SSLOC_____str Uygulamak()_of_ProductSearchQuery

şube adları iletileri işlemek, değil ait.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • RayperEnglishKnight

    RayperEnglis

    24 Kasım 2008
  • sghaff1

    sghaff1

    23 Mart 2009