Sklonowałem repozytorium i pracowałem w gałęzi master. Wystąpił spójny problem: git push
(i git push
) nie działał i dawał długi, niemożliwy do zinterpretowania komunikat o błędzie. Znalazłem próbę i błąd git push origin master
zrobił push poprawnie. Ale teraz zauważyłem coś dziwnego:
$ git config push.default tracking
$ git push
fatal: The current branch master is not tracking anything.
WTF? Pomyślałem, że jeśli sklonujesz repozytorium, master będzie automatycznie śledzony. W każdym razie moje prawdziwe pytania brzmią
- Jak mam utworzyć klon, aby gałęzie były śledzone?
- Jakie są konsekwencje (inne niż bieżące) nie śledzenie?
- Jak naprawić bieżącą sytuację, aby mój oddział śledził pilota?
EDYTOWAĆ Moje lokalne repozytorium działało dziwnie na inne sposoby; co najważniejsze: nie mogłem utworzyć odległych gałęzi. Odłożyłem go na bok i stworzyłem świeżego klona, a on zachowuje się dziwnie na świeże sposoby.
Pierwszy, master
śledzi (tak). Po drugie, udało mi się stworzyć zdalną gałąź, ale to dziwne.
Ratatouille $ git push origin origin:refs/heads/premium
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:gamecrush/Ratatouille.git
* [new branch] origin/HEAD -> premium
Ratatouille $ git branch -r
origin/HEAD -> origin/master
origin/master
origin/premium
Ratatuj to oczywiście nazwa zdalnego repozytorium. Dziwny punkt: co to jest ->
tam dla? Wydaje się, że jest nowy i nie wyświetla się dla starego lokalnego repozytorium ani innych klonów pilota.
Ale teraz rozgałęzienia i śledzenie działają zgodnie z reklamą.
Odpowiedzi:
23 dla odpowiedzi № 1Jaki jest Twój branch.autosetupmerge
Ustawić? Domyślnie powinien on skonfigurować śledzenie gałęzi podczas klonowania.
Spróbuj ustawić upstream dla gałęzi za pomocą tego, aby gałąź śledziła zdalnie.
git branch --set-upstream master origin/master
6 dla odpowiedzi nr 2
Alternatywa: aby ustawić master, aby śledził pilota, podczas pierwszego wypychania wykonaj:
git push -u origin master
The -u
zrobi to samo co --set-upstream
. Potem biegnij git branch -vv
aby zobaczyć listę oddziałów, w tym ich gałęzie śledzące.
2 dla odpowiedzi nr 3
Inne alternatywy:
git branch --set-upstream-to=origin/master