2012-02-10 20 views
28

Czy istnieje sposób na rozwidlenie z określonego oddziału na GitHub? ... Na przykład, moodle ma wiele oddziałów (1.9, 2.0 ... i tak dalej). Czy można wykonać klon tylko oddziału 1.9, a nie oddziału głównego? Czy istnieje możliwość sklonowania określonej gałęzi na moim komputerze?Widelec z oddziału w github

Odpowiedz

8

Klonowanie oznacza utworzenie kopii całego repozytorium na koncie, w tym wszystkich gałęzi i tagów. Jednak możesz dowolnie przełączać i śledzić gałęzie.

+0

... a nawet usunąć gałęzie później. –

+4

Jeśli całe repozytorium zostanie sklonowane, to w jaki sposób wykonywane jest polecenie "odgałęzienie git", po prostu pokazuje gałąź master ... i nie wszystkie gałęzie pokazane na githubie? – jan

+0

Możesz zrobić git branch -d , aby usunąć lokalnie pozostałe. – iltempo

21

nie wiem natywny sposób jeszcze, ale można to zrobić po tym przepisem:

  1. Widelec repozytorium w pytaniu (zwany „upstream”) na stronie internetowej GitHub do obszaru roboczego tam.
  2. Uruchom aplikację pulpitu GitHub i sklonuj repozytorium na swój komputer.
  3. Użyj aplikacji komputerowej GitHub, aby otworzyć powłokę w repozytorium. (The git polecenia nie są dostępne w domyślnej konfiguracji PowerShell chyba że ręcznie.)
  4. Ustaw jako repozytorium źródłowego upstream:

    git remote add upstream https://github.com/{user}/{source-repo}.git 
    
  5. Fetch pełne upstream repozytorium. (Teraz tylko masz kopię swojej głównej gałęzi.)

    git fetch upstream 
    
  6. Sprawdź swój system plików skopiować gałąź chcesz i nadać mu dowolną nazwę:

    git checkout upstream/{branch-in-question} 
    git checkout -b temporary 
    
  7. Opublikuj swoje repo korzystania aplikacja desktopowa GitHub.

  8. W witrynie GitHub otwórz swoje repozytorium i kliknij "Ustawienia".
  9. Zmień "Domyślny oddział" na "tymczasowy". (Po prostu zmień menu rozwijane, musisz , a nie musisz kliknąć przycisk "Zmień nazwę".)
  10. Wróć do swojego repozytorium, przejdź do zakładki "oddziały", teraz możesz usunąć "master" gałąź.
  11. Usuń oddziału głównego w swojej skorupie i zrobić nową gałąź master:

    git branch -d master 
    git branch master 
    git checkout master 
    git -d temporary 
    
  12. Raz jeszcze opublikować repo za pomocą aplikacji na pulpicie GitHub.

  13. W witrynie GitHub otwórz swoje repozytorium i kliknij "Ustawienia".
  14. Zmień "Domyślny oddział" z powrotem na (nowy) oddział "główny".
  15. Wróć do swojego repozytorium, przejdź do zakładki "oddziały", teraz możesz usunąć gałąź "tymczasową".

To powinno być to, czego szukałeś. Być może GitHub zapewni wygodniejszy sposób na zrobienie tego w przyszłości (np. Kliknięcie "Widelec" z gałęzi projektu powoduje dokładnie to zachowanie).

+1

Niesamowita góra stopni Batman! Czy istnieje aktualizacja/bardziej zwięzła metoda dwa lata później (2015)? – javadba

+0

Nie zrobiłem tego ponownie ... – Paramaeleon

+0

Mam rozgałęzione repozytorium github. Po jego rozwidleniu oryginalny właściciel repo utworzył nowy oddział.Nie mogłem wymyślić, jak skopiować tę gałąź do mojego widelca. Te kroki zadziałały. Dzięki. –

1

Tak, możesz sklonować pojedynczą gałąź. Na przykład masz gałąź o nazwie release1.0.Jeśli chcesz sklonować ten oddział do komputera a następnie za pomocą poniższego wiersza kodu:

$ git clone [email protected]:git_username/git_repository_example -b release1.0 --single-branch 
+0

To do klonowania, a nie do rozwidlania. – Sigfried

+0

Pytający zadał to pytanie .... Czy można wykonać klon tylko oddziału 1.9, a nie oddziału głównego zawsze? Czy możliwe jest sklonowanie określonej gałęzi na moim komputerze? .. Przeczytaj pełne pytanie przed komentarzem. Dziękuję Ci. –

+0

Przepraszamy. Masz rację. Chociaż dobrze byłoby zmienić tytuł pytania. Wypróbowałem twoje rozwiązanie, a następnie zdałem sobie sprawę, że to nie pomoże w moim problemie. – Sigfried

0

Używam bitbucket ale jestem pewien, że to będzie działać na GitHub, jak również.

  1. Tworzenie nowego repozytorium
  2. Kasa oddział używając GitExtensions
  3. Kliknij Naciśnij, aby otworzyć okno Popchnij
  4. Ustaw docelowy adres URL do nowego repozytorium
  5. Ustaw oddział docelowy „master”
  6. push

Twoje nowe repozytorium będzie miał t ma pełną historię tylko jednej gałęzi (nie wszystkie gałęzie, takie jak rozwidlenia).

GitExtensions Push Dialog

1

Dla tych, którzy nie lubią pracować z linii poleceń. Oto prosty przewodnik przy użyciu klienta pulpitu dla GitHub:

  1. Kliknij przycisk widelca repo na github.com: step1

  2. Upewnij masz desktop client zainstalowany

  3. Click ten przycisk: step2

  4. sklonować repo

step3

  1. W kliencie stacjonarnym, wybierz żądany oddział

step4

  1. Wybierz oddział chcesz pracować i skończysz

step5

+0

Ładny ilustrowany przewodnik. +1 – VonC

0

Przełącz na gałąź, której potrzebujesz w repozytorium źródłowym Kliknij "Widelec". Dostaniesz rozwidlonego mistrza i oddział, w którym się znajdujesz. Nie wiem, jak to działa z większą liczbą oddziałów, ale moje potrzeby bardzo dobrze działały.

Powiązane problemy