2011-07-16 11 views
7

Jestem nowy zarówno z Git, jak i GitHub, więc proszę o zachowanie mnie. Mam puste repozytorium na GitHub z automatycznie utworzonym odgałęzieniem (strony gh), co, jak rozumiem, ma być używane z funkcjami stron GitHub.Pierwsze kroki z GitHubem i Eclipse (wiosną źródło toolsuite 2.7.1)

Teraz chciałbym utworzyć i zaćmić projekt, z którego mógłbym dokonać commit/push do tego repozytorium.

Co jest mylące, że nie widzę opcji tworzenia zdalnej gałęzi na githubie. Przypuszczam, że przesuwanie mojego źródła na strony gh nie będzie dobrym pomysłem. BTW, ja też nie rozumiem, dlaczego strony GitHub jest funkcja jest zaimplementowana jako oddział? Czy w pewnym momencie filie nie powinny się ze sobą łączyć? Najwyraźniej nie ma sensu scalać stron github w mój projekt. Czy nie byłoby lepiej mieć w tym celu folder do mojego projektu?

Wyszukałem go i znalazłem to link, ale będąc git noob, nie jestem pewien, czy to właśnie chcę zrobić. Chciałbym użyć Eclipse jako mojego głównego interfejsu dla git i github, który wraca do linii poleceń lub innych interfejsów, gdy nie ma innej opcji.


OK Myślę, że to wymyśliłem. Zasadniczo, potrzebujesz zdefiniować zdalny ref, który nie musi istnieć przed ręką.

  1. Utwórz projekt
  2. Team-> Poleć do lokalnego repozytorium
  3. W widoku repozytorium (Window-> Show Widok-> Git -> Repozytoria) wybrać lokalne repozytorium i kliknij prawym przyciskiem na pilotów
  4. Wybierz nowy pilot (push konfiguracji). Wpisz origin w nazwie zdalnej. Naciśnij OK.
  5. Zmień adres URL. Skopiuj/wklej ssh uri z github. Wybierz protokół ssh (upewnij się, że masz klucz ssh zdefiniowany w preferencjach SSH Eclipse i przesłany na github)
  6. Teraz ostatnia część to dodanie mapowania ref. Kliknij Dodaj .. w sekcji mapowania ref. Wprowadź refs/heads/master w gałęziach lokalnych i zdalnych.

Albo może być bibl/heads/master po obu stronach nie jest to dobry pomysł :) widzę, klonowanie repo GitHub, który nie ma GH-stron oddział jest prostsza, jak to automatycznie tworzy ten pilot sprowadzić Spec

Remote Fetch Specyfikacja +refs/heads/*:refs/remotes/origin/*

Może to jest to, co trzeba wpisać w punkcie 6 powyżej


OK, jak się okazało, pierwotny pomysł "refs/heads/master w gałęzi lokalnej i zdalnej" był poprawny. Przesyłanie z tą konfiguracją poprawnie pokazuje moje zmiany w git hub. Z drugiej strony druga opcja kończy się po cichu.

+0

Człowiek nawet '13 Twoje pytanie mnie uratowało. – happybuddha

Odpowiedz

4

Odgałęzienia są zwykle używane w sposób opisany w opisie, ale nic nie mówi, że muszą być używane w ten sposób w celu uzyskania . Tak właśnie github zdecydował się zarządzać treścią strony i działa całkiem nieźle. Jest to podobne do hostowania wielu repo na jednym serwerze SVN.

Jeśli chodzi o tworzenie nowych repo, jeśli utworzysz repo w github, a następnie sklonujesz, będziesz mieć puste repozytorium lokalnie, które już wskazuje na github ze zdalnym nazwanym "origin". Jest to wygodny sposób na rozpoczęcie, ponieważ nie musisz zadzierać z dodawaniem pilota. W tym momencie twoje repozytorium nie ma żadnych zatwierdzeń ani żadnych oddziałów. Kiedy wykonasz pierwsze zatwierdzenie, automatycznie ustanowi oddział nazwany "master". Nie wiem, w jaki sposób domyślnie ustawione jest zaćmienie, ale z wiersza poleceń z ustawieniami domyślnymi musisz jawnie wypchnąć nowe gałęzie do pilota, inaczej nie zostaną one w ogóle popchnięte. To znaczy. wykonanie pierwszego zatwierdzenia i wykonanie git push zakończy się niepowodzeniem z komunikatem typu: "Brak informacji wspólnych i brak określenia, nic nie robi". Zamiast tego musisz git push origin master powiedzieć, aby ustanowić gałąź "master" w zdalnym "origin" (aka github). Następnie, tylko git push będzie działać dobrze.

Nadzieję, że oczyszcza niektóre z zamieszania.