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.

  1. pozycja listy
  2. 'Połącz z repozytorium' z okna dialogowego Witamy w XCode.
  3. użyj adresu URL GitHub SSH dla lokalizacji
  4. 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.
  5. jest teraz nowe repozytorium zdefiniowane w oknie Organizer z jego pochodzeniem ustawionym na GitHub remote SSH URL.
  6. 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'.
  7. wykonaj początkowy commit do lokalnego repozytorium Git.
  8. 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 '
  9. 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".
  10. 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?
Author: jbjon, 2011-04-27

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

  1. Otwórz Organizer w Xcode i przejdź do repozytoriów tab

  2. Najpierw kliknij na Remotes a następnie na "Add Remote"

    Xcode Organizer

  3. Wpisz nazwę zdalnego repozytorium oraz lokalizację swojego zdalnego repozytorium i kliknij Utwórz

    Dodaj zdalne okno dialogowe

  4. Następnie wybierz swój projekt i otwórz File -> Source Control -> Push ...

    Otwórz okno push

  5. Wybierz zdalne repozytorium i poczekaj, aż będzie można je podłączyć! Poszukaj Create W nawiasy.

    okno push

  6. Teraz twój stary projekt jest opublikowany na GitHub

    wynik na Githubie

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!

 88
Author: Tim,
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".

 2
Author: Dan Ray,
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:

  1. przejdź do menu Source Control, wybierz swój projekt i wybierz Configure:

Tutaj wpisz opis obrazka

  1. zobaczysz:

Tutaj wpisz opis obrazka

  1. Wybierz kartę piloty i naciśnij "+" w lewym dolnym rogu. Wybierz Dodaj Zdalne.

Tutaj wpisz opis obrazka

  1. 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.

Tutaj wpisz opis obrazka

    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.

 2
Author: mahboudz,
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