2012-12-01 10 views
16

Przy użyciu GitHub for Mac aplikacji (wersja 87), otrzymałem następujący błąd:GitHub błędu Mac: git: 'poświadczeń-osxkeychain' nie jest poleceniem git

git: 'credential-osxkeychain' is not a git command. See 'git --help'.

error: The requested URL returned error: 403 while accessing https://github.com/[PROJECT URL]/info/refs

fatal: HTTP request failed (256)

git wiersza polecenia narzędzia (wersja 1.8.0) są zainstalowane pod adresem /usr/local/git/bin, a git-credential-osxkeychain został poprawnie zainstalowany pod numerem /usr/local/git/bin.

Jak mogę rozwiązać ten błąd?

+2

co napisałeś? –

+2

Nic nie wpisałem, uderzyłem w przycisk Sync. Mam rozwiązanie, ale stackoverflow nie pozwoli mi go opublikować po 8 godzinach, odkąd jestem nowym użytkownikiem. –

+0

'sudo ln -s/usr/local/git/bin/git-credential-osxkeychain/usr/local/bin/git-credential-osxkeychain' powinno to naprawić. @William ma podobną odpowiedź, chociaż utworzył softlink w '/ usr/bin' zamiast'/usr/local/bin' –

Odpowiedz

10

Źródło tego problemu polega na tym, że GitHub dla Mac używa innej ścieżki katalogu dla swoich plików wykonywalnych niż Narzędzia wiersza poleceń.

GitHub for Mac: /Applications/GitHub.app/Contents/Resources/git/bin

Command Line Tools:/usr/local/git/bin/

Więc kiedy GitHub dla Mac próbuje Synchronizować oddział pokazuje błąd, ponieważ nie może znaleźć pliku wykonywalnego git-credential-osxkeychain.

Aby rozwiązać ten problem:

  1. Uruchom Terminal
  2. Tworzenie dowiązania symbolicznego dla git-poświadczeń-osxkeychain z Command Line Tools Dir do GitHub dla Mac Dir

ln -s <git-command-line-tools dir path>/git-credential-osxkeychain <github for mac path>/git-credential-osxkeychain

To polecenie użyłem w moim systemie:

ln -s /usr/local/git/bin/git-credential-osxkeychain /Applications/GitHub.app/Contents/Resources/git/bin/git-credential-osxkeychain

+4

Miałem ten sam problem z aplikacją Atlassian 'SourceTree' - podstawowy problem był taki sam. Udało mi się rozwiązać ten problem, przełączając z osadzonego git 'SourceTree' na globalnie zainstalowany - który był dostatecznie aktualny - wybierając" SourceTree> Preferences> Git', 'Use System Git'. Zauważ też, że Github dla Mac teraz pozwala ci iść w przeciwnym kierunku: możesz zdecydować się na to, aby jego osadzona wersja git działała jako globalnie zainstalowana poprzez 'Preferences'. – mklement0

+2

Rozwiązanie działa tak samo dla SourceTree, jedynym celem łącza staje się '/ Applications/SourceTree.app/Contents/Resources/git_local/bin' Aktualna wersja klienta git dla Maca zawiera' git-credential-osxkeychain', więc +1 za wskazanie preferencji "Użyj systemu Git". Prawdopodobnie tak powinno się zrobić dla użytkowników SourceTree. W przeciwnym razie, jeśli/gdy aktualizacje git i SourceTree nie, 'git-credential-osxkeychain' będzie niezgodne z wersją z resztą plików wykonywalnych git, z których będzie korzystał SourceTree. –

+0

To samo dzieje się w przypadku SmartGit dla komputerów Mac. Rozwiązanie jest takie samo dla smartgit 'ln -s/usr/local/git/bin/git-credential-osxkeychain/Applications/SmartGit.app/Contents/Resources/git/bin/git-credential-osxkeychain' – hitautodestruct

2

to zawsze bywa z drzewa źródłowego aplikacji i rozwiązania, które zmienić ustawienia, aby nie korzystać z systemu wbudowanego git git z Źródło odwiedzin- drzewo, ponieważ drzewo źródłowe używa starszej wersji lub możesz zaktualizować ustawienia ścieżką do pliku wykonywalnego git i powinieneś go znaleźć w katalogu/usr/bin/git lub możesz wydrukować git i wskazać aplikację swojego drzewa źródłowego, aby z niego korzystać

0

Ustawienie

/usr/local/git/bin/git-credential-osxkeychain

na twojej ścieżce również działa, lub gdziekolwiek jest twoja ścieżka.

Nie jestem pewien, które rozwiązanie jest lepsze.

0

Po przepracowaniu tego przez jednego z moich kolegów udało nam się rozwiązać, po prostu aktualizując SourceTree do najnowszej wersji.

Dla przyszłych widzów, przed udaniem się na ścieżkę dowiązania symbolicznego, upewnij się, że masz włączone automatyczne aktualizacje do źródłowego drzewa (Preferencje-> zakładka aktualizacja), a następnie sprawdzić dostępność aktualizacji (w menu drzewa źródłowego na komputerach Mac)

0

musiałem zrobić sudo ln -s /usr/local/git/bin/git-credential-osxkeychain /usr/bin/git-credential-osxkeychain bo zmodernizowane git a następnie skopiowane/usr/local/git/bin/git/usr/bin/git

0

http://backlogtool.com/git-guide/cn/reference/trouble-shooting.html

HTTPS wymaga haseł za każdym razem wykonać Push/pull jeśli jesteś Windows, po raz pierwszy

, ale na Macu możesz użyć asystenta uwierzytelniania połączonego z łańcuchem kluczy. Użytkownicy używający Homebrew automatycznie instalują asystentów uwierzytelniania podczas instalacji Git. Ponadto musisz zainstalować ręcznie.

Aby sprawdzić, czy posiadasz asystenta certyfikacji instalacji, możesz użyć następującego polecenia, aby potwierdzić.

$ **git credential-osxkeychain**

Jeżeli asystent uwierzytelnianie nie jest zainstalowany, wyświetlane są następujące treści.

git: 'credential-osxkeychain' is not a git command. See 'git --help'.

W tym momencie, można pobrać asystenta uwierzytelniania na właściwą drogę.

step1. **curl -s -O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain**

step2. **chmod u+x git-credential-osxkeychain**

step3. **mv git-credential-osxkeychain /usr/local/bin**

Po instalacji ustaw otwarty asystent uwierzytelniania.

step4. **git config --global credential.helper osxkeychain**

Powiązane problemy