git dodaj zdalną gałąź

139

Chcę dodać pilota i gałąź tego pilota.

Zrobiłem git remote add <newname> <url>, potem zrobiłem, git fetch --allale git branch -anie pokazuje żadnej gałęzi pilota. Mój .git / config pokazuje dodanego pilota.

Czy ktoś może mi pomóc?

Rai
źródło
2
Co się dzieje, kiedy git fetch remote branch:branch && git co branch?
Samy Dindane

Odpowiedzi:

280

Nie jestem pewien, czy próbujesz utworzyć zdalny oddział z lokalnego oddziału, czy odwrotnie, więc nakreśliłem oba scenariusze, a także podałem informacje na temat łączenia oddziałów zdalnych i lokalnych.

Tworzenie pilota o nazwie „github”:

git remote add github git://github.com/jdoe/coolapp.git
git fetch github

Lista wszystkich zdalnych oddziałów:

git branch -r
  github/gh-pages
  github/master
  github/next
  github/pu

Utwórz nowy oddział lokalny (test) ze zdalnego oddziału github (pu):

git branch test github/pu
git checkout test

Scal zmiany ze zdalnego oddziału github (pu) z lokalnym oddziałem (test):

git fetch github
git checkout test
git merge github/pu

Zaktualizuj zdalny oddział github (pu) z lokalnego oddziału (test):

git push github test:pu

Tworzenie nowego oddziału na zdalnym używa tej samej składni, co aktualizacja zdalnego oddziału. Na przykład utwórz nową zdalną gałąź (beta) na github z lokalnego oddziału (test):

git push github test:beta

Usuń zdalną gałąź (pu) z github:

git push github :pu
David M. Syzdek
źródło
Czy istnieje sposób na utworzenie lokalnego oddziału bez określania nazwy, tak aby automatycznie przyjmował taką samą nazwę jak zdalna gałąź?
Dubslow
@Dubslow git checkout --track github/pu, patrz tutaj
Hinrich
25

Możesz sprawdzić, czy zdalna konfiguracja jest prawidłowa i masz odpowiednie uprawnienia za pomocą

git ls-remote origin

jeśli nazwiesz swoje zdalne „źródło”. Jeśli pojawi się błąd, prawdopodobnie nie masz poprawnie skonfigurowanych zabezpieczeń, takich jak na przykład przesyłanie klucza publicznego na github. Jeśli wszystko jest skonfigurowane poprawnie, otrzymasz listę zdalnych odniesień. Teraz

git fetch origin

będzie działać poza wszelkimi innymi problemami, takimi jak odłączony kabel sieciowy.

Gdy to zrobisz, możesz uzyskać dowolną gałąź, z którą wymienione jest powyższe polecenie

git checkout some-branch

spowoduje to utworzenie lokalnego oddziału o tej samej nazwie co zdalny oddział i sprawdzenie go.

Adam Dymitruk
źródło
6

Przetestowałem to, co zasugerował @Samy Dindane w komentarzu do OP.

Wierzę, że to działa, spróbuj

git fetch <remote_name> <remote_branch>:<local_branch>
git checkout <local_branch>

Oto przykład fikcyjnego zdalnego repozytorium o nazwie fooz gałęzią o nazwie, w barktórej tworzę lokalną gałąź barśledzącą zdalną:

git fetch foo bar:bar
git checkout bar
Jason
źródło
5

Oto pełny proces tworzenia lokalnego repozytorium i przekazywania zmian do nowej zdalnej gałęzi

  1. Tworzenie repozytorium lokalnego: -

    Początkowo użytkownik mógł utworzyć lokalne repozytorium git.

    $ git init : - To spowoduje, że folder lokalny stanie się repozytorium Git,

  2. Połącz zdalną gałąź : -

    Teraz wyzwaniem jest skojarzenie lokalnego repozytorium git ze zdalną gałęzią główną .

    $ git remote add RepoName RepoURL

    użycie: git remote add []

  3. Przetestuj pilota

    $ git remote show ---> Wyświetl nazwę pilota

    $ git remote -v ---> Wyświetl zdalne gałęzie

  4. Teraz Push to remote

    $git add . ----> Dodaj wszystkie pliki i foldery jako git staged '

    $git commit -m "Your Commit Message" - - -> Zatwierdź wiadomość

    $git push - - - -> Prześlij zmiany do nadawcy

Pavan
źródło
To są tylko instrukcje dotyczące ogólnego przypadku używania git. Nie widzę w tej odpowiedzi nic specyficznego dla zadanego pytania.
Hack-R
2

Jeśli zdalna gałąź już istnieje, możesz (prawdopodobnie) uciec ...

git checkout branch_name

a git automatycznie skonfiguruje śledzenie zdalnej gałęzi o tej samej nazwie w miejscu pochodzenia.

Sam Murphy
źródło