fetch w git nie pobiera wszystkich gałęzi
Sklonowałem repozytorium, po którym ktoś inny stworzył nową gałąź, nad którą chciałbym zacząć pracować. Przeczytałem instrukcję i wydaje mi się, że to proste. O dziwo to nie działa, a wszystkie posty, które znalazłem sugerują, że robię dobrze. Więc poddam się lambasting, bo tam musi być coś oczywiście nie tak z tym:
Poprawne działanie wydaje się być
git fetch
git branch -a
* master
remotes/origin/HEAD --> origin/master
remotes/origin/master
git checkout -b dev-gml origin/dev-gml
W tym momencie jest problem, z jakiegoś powodu po git fetch
nie widzę zdalnej gałęzi dev-gml. Dlaczego nie? Jeśli sklonuję repozytorium świeżo, to tam jest, więc na pewno zdalna gałąź istnieje:
$ mkdir ../gitest
$ cd ../gitest
$ git clone https://github.com/example/proj.git
Cloning into proj...
remote: Counting objects: 1155, done.
remote: Compressing objects: 100% (383/383), done.
remote: Total 1155 (delta 741), reused 1155 (delta 741)
Receiving objects: 100% (1155/1155), 477.22 KiB | 877 KiB/s, done.
Resolving deltas: 100% (741/741), done.
$ cd projdir
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev-gml
remotes/origin/master
Próbowałem git update
, git pull
, git fetch --all
, git pretty-please
we wszystkich możliwych permutacjach...
10 answers
Problem można zobaczyć sprawdzając ustawienie remote.origin.fetch
(Linie zaczynające się od $
są podpowiedziami Basha z wpisanymi przeze mnie poleceniami. Pozostałe linie są wynikowym wyjściem)
$ git config --get remote.origin.fetch
+refs/heads/master:refs/remotes/origin/master
Jak widzisz, w moim przypadku pilot był ustawiony tak, aby pobierał gałąź master tylko i wyłącznie. Naprawiłem to jak poniżej, w tym drugie polecenie, aby sprawdzić wyniki.
$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
$ git config --get remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*
Symbol wieloznaczny *
oczywiście oznacza wszystko pod tą ścieżką.
Niestety widziałem to komentarz po tym, jak już przekopałem się i znalazłem odpowiedź metodą prób i błędów.
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-05-23 12:26:17
Miałem ten problem dzisiaj na repo.
To nie był +refs/heads/*:refs/remotes/origin/*
problem jak na najlepsze rozwiązanie.
Symptomem było po prostu to, że git fetch origin
lub git fetch
po prostu nic nie robiło, chociaż były odległe gałęzie do pobrania.
Po wypróbowaniu wielu rzeczy, usunąłem pilota origin i odtworzyłem go. Wygląda na to, że to naprawiło. Nie wiem dlaczego.
Usuń z:
git remote rm origin
I odtworzyć z:
git remote add origin <git uri>
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
2018-03-09 03:03:27
Zdalna aktualizacja
Musisz uruchomić
git remote update
Lub
git remote update <remote>
Następnie możesz uruchomić git branch -r
, Aby wyświetlić listę zdalnych gałęzi.
Sprawdź nowy oddział
Aby śledzić (nową) zdalną gałąź jako lokalną gałąź:
git checkout -b <local branch> <remote>/<remote branch>
Lub (czasami nie działa bez dodatkowych remotes/
):
git checkout -b <local branch> remotes/<remote>/<remote branch>
Pomocne cheatsheets git
- Ściągawka Git (Mój ulubiony )
- Kilka uwag na temat git
- Git Ściągawka (pdf)
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
2020-03-06 17:12:29
Zapisz go z Terminala
git fetch --prune.
Działa dobrze.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
2018-01-03 14:16:31
Aby było bardziej szczegółowe Utwórz gałąź śledzenia, co oznacza, że śledzisz teraz gałąź zdalną.
git branch --track branch remote-branch
git branch --track exp remotes/origin/experimental
Po czym możesz
git branch # to see the remote tracking branch "exp" created .
Następnie do pracy na tej gałęzi zrobić
git checkout branchname
git checkout exp
Po dokonaniu zmian w gałęzi. Możesz git fetch i GIT scalić ze zdalną gałęzią śledzenia, aby scalić zmiany i wypchnąć je do zdalnej gałęzi, jak poniżej.
git fetch origin
git merge origin/experimental
git push origin/experimental
Mam nadzieję, że to pomoże i da ci pomysł, jak to działa.
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-01-26 22:31:56
Miałem podobny problem, jednak w moim przypadku mogłem ściągnąć / wcisnąć do zdalnej gałęzi, ale git status
nie pokazywałem lokalnego stanu gałęzi w.R.T zdalnych.
Również w moim przypadku git config --get remote.origin.fetch
nic nie zwróciłem
Problem polega na tym, że w pliku .git/config
w wierszu pobierania odpowiedniego bloku zdalnego wystąpiła literówka. Prawdopodobnie coś, co wcześniej przez pomyłkę dodałem (czasami patrzę bezpośrednio na ten plik, a nawet go edytuję)
Więc sprawdź, czy zdalny wpis w pliku .git/config
jest poprawne, np.:
[remote "origin"]
url = https://[server]/[user or organization]/[repo].git
fetch = +refs/heads/*:refs/remotes/origin/*
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
2019-10-28 09:48:22
Miałem ten sam problem dzisiaj skonfigurowanie mojego repo od zera. Próbowałem wszystkiego, nic nie działało, poza usunięciem źródła i ponownym dodaniem go z powrotem.
git remote rm origin
git remote add origin [email protected]:web3coach/the-blockchain-bar-newsletter-edition.git
git fetch --all
// Ta daaa all branches fetched
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
2020-05-28 17:45:14
Może to być spowodowane momentem dłoni: jeśli przełączasz się między kilkoma klonami, łatwo jest znaleźć się w niewłaściwym drzewie źródłowym, próbując wyciągnąć nieistniejącą gałąź. Jest to łatwiejsze, gdy klony mają podobne nazwy lub repozytoria są odrębnymi klonami dla tego samego projektu od każdego z wielu współpracowników. Nowy git clone najwyraźniej rozwiązuje ten "problem", gdy prawdziwym problemem jest utrata ostrości lub kontekstu pracy lub obu tych rzeczy.
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
2013-03-05 15:20:31
Musiałem wejść do zdalnych repozytoriów GitExtensions, ponieważ nic tutaj nie działało. Tam zobaczyłem, że 2 gałęzie nie mają skonfigurowanego zdalnego repozytorium. po dopasowaniu wygląda to następująco
Notice branch noExternal3
nadal pokazuje, że nie ma zdalnego repozytorium. Nie jestem pewien, jakie kombi poleceń bash znalazłoby lub dostosowało to.
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
2014-07-28 14:15:06
Mieliśmy ten sam problem i musisz użyć
git fetch
git push origin branch_name
git branch -r
Mam nadzieję, że to pomoże komuś w obliczu tego samego problemu
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
2016-02-25 11:44:18