Jak sprawdzić zdalną gałąź Git?

ktoś pchnął gałąź o nazwie testgit push origin test wspólna repozytorium. Widzę gałąź z git branch -r.

teraz ja staram się sprawdzić, czy pilottest oddziału.

próbowałem:

  • git checkout test który nic nie robi

  • git checkout origin/test daje * (no branch). Co jest mylące. Jak mogę być na "bez gałęzie"?

Jak sprawdzic zdalną gałąź Git?


aktualizacja

Jakub!--10--> faktycznie poprawia to. Z wersji Git ≥ 1.6.6, możesz po prostu zrobić:

git fetch
git checkout test

(użytkownik masukomi wskazuje poniżej, że git checkout test nie będzie pracować w nowoczesnym git, jeśli masz kilka takich urządzeń. W tym przypadku należy użyć git checkout -b test <name of remote>/test).

Odpowiedź

zanim będziesz mógł zacząć działać lokalnie na zdalnej gałęzi, trzeba dostać się, jak dzwoni w odpowiedzi poniżej.

aby przynieść gałąź, po prostu muszę:

git fetch origin

to przyniesie wszystkie usunięte gałęzie dla ciebie. Można zobaczyć oddziałów dostępne do zamówienia z:

git branch -v -a

ze zdalnymi oddziałami w ręku, teraz trzeba sprawdzić oddział, który cię interesuje, dając ci lokalnej kopii roboczej:

git checkout -b test origin/test

Sidenote: Z nowoczesnym Git (>= 1.6.6), można użyć po prostu

git checkout test

(zwróć uwagę, że to "test", a nie "pochodzenie" /test") do wykonywania magicznych DWIM-Mary i tworzenia testowych lokalnego oddziału " dla ciebie, dla którego w górę będzie zdalnego śledzenia pochodzenia oddział '/test'.


* (no branch)git branch output oznacza, że jesteś w неназванной gałęzie, w tak zwanym" oddzielonej mózgu " stanie (bóle punktu bezpośrednio przymocować, a nie symbolicznie wskazywać na jakąś lokalną gałąź). Jeśli zrobiłeś jakieś zmiany w tej неназванной gałęzie, zawsze można utworzyć lokalną gałąź z bieżącym zaznaczeniem:

git checkout -b test HEAD

w tym przypadku, prawdopodobnie chcesz utworzyć lokalną test oddział, który śledzi zdalny test branży:

$ git branch test origin/test

w starszych wersjach git musisz wyraźną , ale to domyślne teraz, kiedy odbiegające zdalnego oddziału.


w zwyczaju odpowiadać nie działa dla ciebie?

podczas gdy pierwszy i wybraną odpowiedź jest technicznie w prawo, są szanse, że jeszcze nie otrzymałeś wszystkie obiekty i linki z repozytorium zdalnego. Jeśli tak, otrzymasz następujący błąd:

$ git checkout -b remote_branch origin/remote_branch

fatal: git checkout: aktualizacja oddechowych jest niezgodna z przełączaniem gałęzi.
Zamierzał sprawdzić "origin / remote_branch" który nie może być rozwiązany jak commit?

rozwiązanie

otrzymujesz tę wiadomość, musisz najpierw zrobić git fetch origin tutaj origin to nazwa zdalnego repozytorium przed uruchomieniem git checkout remote_branch. Oto pełna przykład z odpowiedziami:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'

Jak widać, działa git fetch origin usuwali wszystkie usunięte gałęzie, które jeszcze nie zostały skonfigurowane do śledzenia na naszej lokalnej maszynie. Stamtąd, ponieważ teraz mamy link na zdalną gałąź, możemy po prostu uruchomić git checkout remote_branch i otrzymamy zalety zdalnego monitorowania.


próbowałem powyższe rozwiązanie, ale ono nie działa. Spróbuj tego, to działa:

git fetch origin 'remote_branch':'local_branch_name'

to doprowadzi do zdalnej gałęzi i stworzy nową lokalną gałąź (jeśli jeszcze nie istnieje) o nazwie local_branch_name i śledzić zdalny w nim.


DWIM do zdalnego źródła bez nazwy (dokumentacja):

$ git checkout -t remote_name/remote_branch

aby dodać nowy pilot, najpierw trzeba będzie wykonać następujące czynności:

$ git remote add remote_name location_of_remote
$ git fetch remote_name

pierwszy informuje Git, że pilot istnieje, drugi otrzymuje commit.


zastosowanie:

git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

inne odpowiedzi nie działają z nowoczesnym Git w moim доброкачественном przypadku. Może trzeba najpierw pociągnąć, jeśli zdalna gałąź nowa, ale nie testowałem ten przypadek.


OK, odpowiedź jest prosta... W zasadzie widać gałąź, ale jeszcze nie masz lokalnej kopii!...

musisz fetch oddziału...

po prostu można uzyskać, a następnie złożyć zamówienie na gałąź, użyj polecenia poniżej wiersza, aby zrobić to:

git fetch && git checkout test

Ja również stworzył obraz poniżej, aby podzielić się różnice, zobacz, jak fetch działa i jak to się różni od pull:

git fetch


aby sklonować repozytorium Git, wykonaj:

git clone <either ssh url /http url>

powyższe polecenie sprawdza wszystkie gałęzie, ale tylko master gałąź zostaną zainicjowane. Jeśli chcesz sprawdzić inne gałęzie, wykonaj:

git checkout -t origin/future_branch (for example)

to polecenie sprawdza zdalną gałąź, i Twoja nazwa lokalna gałąź będzie taki sam, jak zdalna gałąź.

jeśli chcesz zastąpić swój lokalny nazwa oddziału przy składaniu zamówienia:

git checkout -t -b enhancement origin/future_branch

teraz twoja lokalna nazwa oddziału enhancement, ale twoje zdalne nazwa oddziału future_branch.

dokumentacja


możesz spróbować

git fetch remote
git checkout --track -b local_branch_name origin/branch_name

lub

git fetch
git checkout -b local_branch_name origin/branch_name

po pierwsze, trzeba zrobić:

git fetch # Jeśli nie wiesz o tytule oddziału

git fetch origin branch_name

po drugie, można sprawdzić zdalną gałąź w lokalnym właściciela:

git checkout -b branch_name origin/branch_name

-b utworzy nową gałąź o podanej nazwie z wybranej zdalnej gałęzi.


zespołu

git fetch --all
git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>

równe

 git fetch --all

a

 git checkout -b fixes_for_dev origin/development

jak stworzyć latest fixes_for_devdevelopment


używam następującego polecenia:

git checkout --track origin/other_remote_branch

jeśli gałąź jest czymś, z wyjątkiem origin remote lubię robić następujący:

$ git fetch
$ git checkout -b second/next upstream/next

to jest test next affiliate upstream zdalny dostęp do lokalnej gałęzi o nazwie second/next. Oznacza to, że jeśli masz już lokalna gałąź z nazwą next, to nie będzie kolidować.

$ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next

git fetch && git checkout your-branch-name


git branch -r mówi, że nazwa obiektu jest niedopuszczalne, bo to nazwa gałęzi nie znajduje się na lokalnej liście gałęzi Git. Zaktualizuj listę lokalnych oddziałów z origin za pomocą:

git remote update

a następnie spróbuj ponownie sprawdzić zdalną gałąź.

to działa dla mnie.

uważam git fetch ciągnie na usunięte gałęzie, że nie jest to, że oryginalny plakat chciał.


żadna z tych odpowiedzi pracował dla mnie. to zadziałało:

git checkout -b feature/branch remotes/origin/feature/branch


git remote show <origin name> zespół wyda wszystkie gałęzie (w tym nie do wytropienia gałęzie). Następnie możesz znaleźć nazwę zdalnej gałęzi, które trzeba uzyskać.

przykład:

$ git remote show origin

wykonaj te kroki, aby odzyskać usuniętych gałęzi:

git fetch <origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)

przykład:

$ git fetch origin test:test
$ git checkout test

inne chłopcy i dziewczęta, udzielam rozwiązania, ale, być może, mogę powiedzieć ci, dlaczego.

test kontroli Git, który nic nie robi

Does nothing tak doesn't work tak, myślę, że po wpisaniu "git checkout test" w swoim terminalu, a następnie naciśnij klawisz enter, komunikat się nie pojawia i błąd nie występuje. Mam rację?

jeśli odpowiedź brzmi "tak", mogę powiedzieć ci dlaczego.

powodem jest to, że istnieje plik (lub folder) o nazwie "test" w twoje drzewa roboczego.

git checkout xxx rozebrany,

  1. PIP patrzy na xxx jak nazwa gałęzi na początku, ale nie ma żadnej gałęzi o nazwie test.
  2. wtedy PIP myśli xxx to ścieżka i na szczęście (lub niestety), znajduje się plik o nazwie test. Tak git checkout xxx oznacza odrzucić wszelkie zmiany w .
  3. jeśli nie ma pliku o nazwie xxx albo to Git spróbuje utworzyć xxx według pewnych zasad. Jedną z zasad to utworzyć gałąź o nazwie xxx.

możesz zacząć śledzić wszystkie usunięte gałęzie ze w następujący skrypt Bash:

#!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`
  do git branch -f --track "$branch" "origin/$branch"
done

to również однострочная wersja:

git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;

wykonaj następujące polecenie, aby utworzyć pusty folder. Wpisz to i użyj następującego polecenia:

saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url
Cloning into 'iPhoneV1'...
remote: Counting objects: 34230, done.
remote: Compressing objects: 100% (24028/24028), done.
remote: Total 34230 (delta 22212), reused 15340 (delta 9324)
Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done.
Resolving deltas: 100% (22212/22212), done.
Checking connectivity... done.
saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/
saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery
Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from origin.
Switched to a new branch '1_4_0_content_discovery'

aby nowo utworzone oddziały

git fetch

przełączyć się na inną gałąź

git checkout BranchName

Fetch origin i sprawdź gałęzie.

git fetch origin && git checkout branch_name 

po prostu uruchomić git checkout Z nazwą zdalnej gałęzi. PIP będzie!--6-->automatycznie utworzyć lokalna gałąź, która śledzi zdalną:

git fetch
git checkout test

jeśli jednak jest to nazwa gałęzi znalezionych w więcej niż jednym zdalnym, to nie będzie działać, ponieważ Git nie wie, jakiego użyć. W tym przypadku można użyć:

git checkout --track origin/test

lub

git checkout -b test origin/test

2.19 frajer dowiedzieć się checkout.defaultRemote konfiguracja, która wskazuje na domyślnie w rozdzielczości takiej niejednoznaczności.