fatal: gałąź upstream bieżącej gałęzi nie pasuje do nazwy bieżącej gałęzi

Po wykonaniu kasy zdalnej gałęzi releases/rel_5.4.1 przy użyciu GUI Git, pojawia się nieoczekiwany komunikat o błędzie, gdy próbuję push:

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:releases/rel_5.4.1

To push to the branch of the same name on the remote, use

    git push origin rel_5.4.1
Nie wiem, o czym Git mówi. Prawdopodobnie chcę przesunąć do origin releases/rel_5.4.1, ponieważ jest to gałąź, którą sprawdziłem. Więc żadna z opcji nie wydaje mi się poprawna.

git status mówi, że jestem na branch rel_5.4.1.

Oto gałąź, jaka pojawia się w moim .git/config:

[branch "rel_5.4.1"]
    remote = origin
    merge = refs/heads/releases/rel_5.4.1
Co się dzieje?
Author: Aaron Digulla, 2014-07-21

5 answers

Z korzyścią dla czytelników, którzy mogą pominąć prawdopodobnie najważniejszy szczegół, dobrze ukryty w komentarzach:

Wynika to z git config push.default ustawienie. określa, co git robi, gdy wchodzisz git push (zobacz link ).

W pytaniu najwyraźniej ustawienie zostało ustawione na simple (co jest domyślne dla git v2), prawdopodobnie z

git config --global push.default simple

Oznacza to, że git odmawia wciśnięcia, gdy lokalna i zdalna gałąź nie pasuje dokładnie. Na pozwala na naciśnięcie do gałęzi śledzącej, dzięki czemu tworzą git pull i git push symetryczne , używają

git config --global push.default upstream

Uwaga: Zostaw --global, aby zmienić ustawienie bieżącego (lokalnego) repozytorium git.

 40
Author: Tino,
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-08-09 11:34:14

Twoja lokalna gałąź nazywa się rel_5.4.1, ale odległa gałąź to releases/rel_5.4.1 (jeśli chodzi o Git, / nie ma specjalnego znaczenia w nazwach gałęzi, poza tym, aby były łatwiejsze do odczytania dla ludzkiego oka).

Kiedy naciskasz, Git nie jest świadomy, czy chcesz wcisnąć swoją gałąź do releases/rel_5.4.1 (Nazwa zdalnej gałęzi), czy też chcesz utworzyć nową gałąź zdalną. Zwraca jednak uwagę na podobieństwo imion.

Jeśli nie chcesz utworzyć nowej gałęzi, poprawne polecenie is

git push origin HEAD:releases/rel_5.4.1

Możesz również użyć

git push origin rel_5.4.1:releases/rel_5.4.1

Aby naprawić Ostrzeżenie raz na zawsze, Zmień nazwę lokalnej gałęzi, aby pasowała do nazwy zdalnej:

git branch -m releases/rel_5.4.1
 31
Author: Aaron Digulla,
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-21 13:01:23

Ten błąd można naprawić raz na zawsze, używając:

git branch releases/rel_5.4.1 -u origin/releases/rel_5.4.1

Zmienia upstream gałęzi, aby dopasować poprawny pilot (ponownie).

 16
Author: s.meijer,
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-03-29 10:18:37

W moim przypadku git branch --unset-upstream rozwiązałem ten problem.

 4
Author: gpap,
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-17 10:34:10

Wydaje się, że posiadanie lokalnej nazwy gałęzi, która różni się od zdalnego, nie jest tym, co Git lubi zbytnio. Będziesz musiał wydać:

git push origin HEAD:releases/rel_5.4.1

Explicitely on every push

 0
Author: hek2mgl,
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-21 12:48:19