W XCode 4 Jak dodać zdalne repozytorium GitHub do istniejącego projektu lokalnego?
Integracja z Git w XCode 4 jest bardzo mile widziana, jednak wydaje się być nieco krucha, jeśli chodzi o radzenie sobie ze zdalnymi repozytoriami. Dla jasności używam OS X w wersji 10.6.7 i XCode 4.0.2 (4A2002a).
Jeśli stworzę nowy projekt XCode 4 i zaakceptuję opcję utworzenia lokalnego repozytorium Git, wszystko będzie dobrze. Mogę zaangażować się lokalnie i to świetnie.
Kiedy chcę wypchnąć nowy projekt do Githuba chcę dodać zdalne repozytorium i wypchnąć moje lokalne zmiany do Githuba. I można dodać repozytorium GitHub do XCode 4 jako nowe repozytorium w oknie Organizatora, ale nie ma sposobu, aby ustawić go jako zdalne repozytorium dla mojego istniejącego projektu.
Więc przełączyłem się na użycie komend git w Terminalu.
git remote add origin https://<username>@github.com/<organization>/<repository>.git
Jeśli wrócę do XCode 4 i spróbuję użyć
File - > Source Control - > Push...
Następnie Wybierz repozytorium, do którego chcesz wypchnąć zmiany. pojawi się okno dialogowe z listą zdalnego repozytorium origin . Jest żółty wskaźnik mówiący, że uwierzytelnianie jest wymagane, co jest w porządku, ponieważ nie byłem jeszcze w stanie wprowadzić moich poświadczeń dla HTTPS. Jednak gdy klikam 'Push' i próbuje wcisnąć zmiany, mówi " operacja nie może być wykonana, ponieważ dostęp do repozytorium 'origin' jest zabroniony."
Pojawia się okno dialogowe z prośbą o podanie mojej nazwy użytkownika i hasła z moim wstępnie wypełnionym, więc musi to być prawidłowe odczytanie z konfiguracji lokalnego repozytorium.
Kiedy wprowadź moje hasło XCode 4, a następnie wywala się z następującym błędem
ASSERTION FAILURE in /SourceCache/IDEKit/IDEKit-303/Framework/Classes/SourceControl/IDESourceControlOperationInfo.m:59
Details: Message sent to invalidated object: <IDESourceControlPushOperationInfo, 0x200bd2a80>. Backtrace for invalidation:
(null)
Object: <IDESourceControlPushOperationInfo: 0x200bd2a80>
Method: -invalidate
Thread: <NSThread: 0x200020700>{name = (null), num = 1}
Hints: None
Po ponownym uruchomieniu XCode repozytorium origin zostało dodane do przeglądarki repozytoriów w organizerze i widzę gałąź master na Githubie, więc wiem, że poświadczenia są poprawne, bez mojej zmiany czegokolwiek.
Czy ktoś znalazł niezawodny sposób użycia Xcode 4 z GitHub zaczynając od lokalnego projektu najpierw?
Jeśli sklonuję istniejące repozytorium GitHub z projektem XCode, otwórz je z XCode 4 to nawet jeśli pierwszy Push wydaje się nie udać, 2nd push zrobił następnie pracy. Więc może rozpoczęcie od zera z Xcode 4 Tworzenie repozytorium dla mnie nie jest najlepszym wzorcem (dopóki nie poprawią narzędzi Git w późniejszej wersji XCode 4).
EDYCJA Z DALSZYMI SZCZEGÓŁAMI JEDNEGO OBEJŚCIA
Ten przykład dotyczy tylko pierwszego projektu, który dodajesz do repozytorium GitHub. W związku z tym myślę, że lepiej będzie wykonać następujące kroki, mając na uwadze nadal wydaje się, że w tym rozwiązaniu są jakieś "gotchas" XCode.
- pozycja listy
- 'Połącz z repozytorium' z okna dialogowego Witamy w XCode.
- użyj adresu URL GitHub SSH dla lokalizacji W tym celu należy wykonać następujące czynności:]} Pierwsza próba nie powiodła się, mimo że zawartość została pobrana.]} Spróbuj jeszcze raz i zadziała.
- jest teraz nowe repozytorium zdefiniowane w oknie Organizer z jego pochodzeniem ustawionym na GitHub remote SSH URL.
- Utwórz nowy projekt w katalogu, do którego właśnie sklonowałeś, ale nie zaznaczaj opcji 'Utwórz lokalne repozytorium git dla tego projektu'.
- wykonaj początkowy commit do lokalnego repozytorium Git.
- spróbuj Source Control - > Push i Xcode 4 nie powiedzie się z ' operacja nie może być wykonana, ponieważ dostęp do repozytorium Nazwa RepositoryName został zablokowany. Sprawdź nazwę użytkownika i hasło '
- spróbuj Source Control - > Push i Xcode 4 wyskakuje z pilota Okno dialogowe repozytorium ponownie, ale tym razem wykryto zdalne repozytorium o nazwie origin. Obok znajduje się żółta kulka i "Wymagane uwierzytelnienie".
- ponowne kliknięcie przycisku "Push" spowodowało, że zdalne naciśnięcie zadziałało.
Jedną z rzeczy, które zauważyłem i nie udało się wypracować jeszcze jest to, że wiadomości odpowiedzi z GitHub z wartości checkin hash i wszelkie wiadomości wydają się być zgłaszane w Xcode Log navigator jako błędy Push, nawet jeśli Push jest skuteczne, jak daleko jak GitHub jest zaniepokojony.
Ktoś jeszcze ma lepsze rozwiązanie?3 answers
Myślę, że znalazłem sposób Xcode, aby wypchnąć istniejący projekt do GitHub lub innego zdalnego repozytorium!
Warunki wstępne
- zakładam, że masz projekt stworzony przez Xcode 4z lokalnym repozytorium git.
- utworzyłeś puste zdalne repozytorium git (nazywam je RemoteRepository W poniższym przykładzie)
Push it to remote
-
Otwórz Organizer w Xcode i przejdź do repozytoriów tab
-
Najpierw kliknij na Remotes a następnie na "Add Remote"
-
Wpisz nazwę zdalnego repozytorium oraz lokalizację swojego zdalnego repozytorium i kliknij Utwórz
-
Następnie wybierz swój projekt i otwórz
File -> Source Control -> Push ...
-
Wybierz zdalne repozytorium i poczekaj, aż będzie można je podłączyć! Poszukaj Create W nawiasy.
-
Teraz twój stary projekt jest opublikowany na GitHub
Mam nadzieję, że to będzie działać również dla Ciebie! W moim przypadku działa z każdym zdalnym repozytorium git .
Proszę o kontakt na twitter jeśli coś niejasne lub napisane w złym angielskim!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-15 09:13:51
Zrobiłem to pomyślnie używając połączenia ssh (które wygląda jak [email protected]:<username>/<project>.git
). Uwierzytelnia użytkownika na podstawie klucza publicznego SSH, który można wygenerować w wierszu poleceń--wiele dokumentów o tym na github w sekcji "Pomoc".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-27 12:13:05
Xcode 6.2 (i prawdopodobnie 6.x) zmieniło wszystko wokół. W organizerze nie ma już zakładki repozytoria. Oto jak to zrobić z nowszymi Xcodes.
Aby dodać projekt z lokalnym repozytorium Gita do Githuba, wykonaj następujące czynności:
- przejdź do menu Source Control, wybierz swój projekt i wybierz Configure:
- zobaczysz:
- Wybierz kartę piloty i naciśnij "+" w lewym dolnym rogu. Wybierz Dodaj Zdalne.
- Wpisz nazwę zdalnego repozytorium i wpisz adres URL zdalnego repozytorium. Upewnij się, że już utworzyłeś to zdalne repozytorium, a jeśli na GitHub, make are, określisz, że jest to istniejący projekt, a nie nowy.
-
Prawie skończyłeś. Przejdź do menu Kontrola źródła i wybierz Push. Następnie zobaczysz nazwę repo, której użyłeś w ostatnim kroku, coś w rodzaju "najprostszy / master"; nacisnąć przycisk.
Zrobione.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-09 06:10:04