Po uaktualnieniu do wersji OSX 10.10 Yosemite Beta, uruchomienie git pull
zwraca następujący błąd:
/ Library / Developer / CommandLineTools / usr / libexec / git-core / git-pull: line 11: git-sh-setup: Nie ma takiego pliku ani katalogu
Sprawdziłem katalog git-core, do którego się odwołano, i znajduje się tam plik git-sh-setup.sh.
Inne polecenia git działają dokładnie tak, jak oczekiwano
git
zsh
osx-yosemite
megafon
źródło
źródło
git stash
. Dam ci znać, jeśli znajdę rozwiązanieOdpowiedzi:
Myślę, że najczystszym rozwiązaniem na razie jest zmiana początkowego polecenia w sesji iTerm na
To rozwiązuje problem.
Kolejny punkt danych do analizy problemu: wydaje się, że w 10.10 istnieje wiele kopii zmiennej środowiskowej PATH, a podpowłoki wydają się preferować drugą kopię.
Możesz to odtworzyć, uruchamiając dowolną aplikację kakaową na konsoli uruchomioną przez iTerm. Otrzymasz ostrzeżenie, które wygląda następująco:
Uważam, że jest to problem w 10.10, a nie w iTermie, ale coś, co robi iTerm, powoduje, że się manifestuje (nie dzieje się to w Terminal.app)
Aktualizacja : Jest to spowodowane tym, że iTerm robi „ciekawe” rzeczy dla środowiska. Zaktualizuj do oficjalnej wersji iTerm 2.0, aby rozwiązać ten problem.
źródło
/usr/bin/login -f $USER
, tylko po to, aby mieć ten sam profil na wielu kontach :)/bin/bash -c /bin/zsh
to, zachowane zostaną inne zmienne środowiskowe, np$SSH_AUTH_SOCK
./bin/bash -c /bin/zsh
jest lepszy niż/usr/bin/login -f <your user name>
, ponieważ zachowuje kodowanie znaków./usr/bin/login -f <your user name>
utraciłem kodowanie i nie mogę normalnie wyświetlać moich plików.Uważam, że jest to błąd w iTermie podczas korzystania z zsh. Celowo nie wywołują / usr / bin / login i nie używają execle do czyszczenia zmiennych środowiskowych tak, jak powinny.
źródło
/bin/bash -c /bin/zsh
login shell
nacommand
w sekcji Preferencje> Profil> Ogólne i użycie/bin/bash -c /bin/zah
zgodnie z sugestią @Sorenly rozwiązało ten problem!Pobranie najnowszej wersji iTerm2 rozwiązało ten problem!
źródło
Inne rozwiązanie, zmodyfikuj swój iTerm2
Gotowe.
Ciesz się iTerm2 z Yosemite!
źródło
Jako rozwiązanie tymczasowe zmodyfikowałem linie git-pull 11, 12 i 336 tak, aby były:
To naprawia na razie git-pull, ale jestem pewien, że istnieje lepsze rozwiązanie.
źródło
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-parse-remote
$GIT_PATH/git-sh-setup
itp./usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup: line 334: git: command not found fatal: 'pull' appears to be a git command, but we were not able to execute it. Maybe git-pull is broken?
Po zastosowaniu tej poprawki, ktoś ma pomysł, co robić?git
z/usr/local/bin/git
. Było kilka przypadkówgit
git-pull, które również musiały zostać zastąpioneOto tymczasowa poprawka (zakładając Homebrew i Git 2.0.0), jeśli chcesz, aby Git działał, zanim pojawi się oficjalna poprawka. Ustawiam dwie zmienne powłoki:
... a następnie zastąpiono wystąpienia
git
odpowiednich linków bezwzględnych. Możesz użyć następujących Gists, aby zrobić to samo:To z pewnością hack, ale sprawi, że zaczniesz działać.
EDYTUJ: Upewnij się, że spojrzysz na odpowiedź z @pilif, zanim to zrobisz ...
źródło
Obejście Ubiquill dotyczy również git rebase (i prawdopodobnie niezależnie od tego, które inne funkcje nie działają). W takim przypadku wymaga zastąpienia wierszy 47 i 48 następującym *:
* Ta ścieżka zakłada, że masz zainstalowanego gita z homebrew i znajduje się on w /usr/local/Cellar/git/2.0.0/.
źródło
Edytuj swój plik git-pull i dodaj tę linię nad nim (tuż po bloku komentarza)
Lub po prostu skopiuj, wklej to w swoim terminalu:
Aktualizacja: zgodnie z założeniami pilif , od ostatniej aktualizacji iTerm2 (1.0.0.20140629),
git-pull
działają poprawnie bez tegoPATH
zastąpienia.źródło
Dostępna jest aktualizacja git-rebase.sh
https://github.com/git/git/pull/110/files
źródło
UPDATE: nadal nie działa z wydaniem wymienionym poniżej, mój błąd. Git push działa Git pull nie działa.
Wydaje mi się, że problem został rozwiązany przez firmę Apple w systemie Mac OS X Yosemite 10.10 ( 14A329r ). Jestem na ogólnym kanale Beta Yosemite (nie programista). Git push /
Ciągnąćdziała ponownie zgodnie z oczekiwaniami bez żadnych modyfikacji.źródło