Wypróbuj to w swoim alicerepozytorium (przed wypchnięciem):
git config push.default tracking
Lub skonfiguruj go jako domyślny dla swojego użytkownika za pomocą git config --global ….
git pushdomyślnie robi originrepozytorium (które zwykle jest repozytorium, z którego sklonowano bieżące repozytorium), ale nie domyślnie wypycha bieżącą gałąź - domyślnie wypycha tylko gałęzie, które istnieją zarówno w repozytorium źródłowym, jak i docelowym.
push.defaultZmiennej konfiguracji (patrz git-config (1) ) kontrole co git pushbędzie apelować, gdy nie podano żadnych argumentów „refspec” (czyli coś po repozytorium nazwa). Wartość domyślna określa zachowanie opisane powyżej.
Oto możliwe wartości push.default:
nothing
To zmusza cię do dostarczenia „refspec”.
matching(domyślnie)
Wypycha wszystkie gałęzie, które istnieją zarówno w repozytorium źródłowym, jak i docelowym.
Jest to całkowicie niezależne od oddziału, który jest obecnie wyewidencjonowany.
upstreamlub tracking
(Obie wartości oznaczają to samo. Później było przestarzałe, aby uniknąć pomyłek z gałęziami „zdalnego śledzenia”. Ta pierwsza została wprowadzona w 1.7.4.2, więc będziesz musiał użyć tej drugiej, jeśli używasz Git 1.7.3.1. )
Wypychają bieżącą gałąź do gałęzi określonej przez jej konfigurację „upstream”.
current
To wypycha bieżącą gałąź do gałęzi o tej samej nazwie w docelowym repozytorium.
Te dwa ostatnie kończą się tak samo dla typowych przypadków (np. Praca na lokalnym systemie głównym, który używa źródła / wzorca jako swojego źródła ), ale różnią się, gdy oddział lokalny ma inną nazwę niż jego oddział „powyżej”:
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
Z push.defaultrówną upstream(lub tracking), push pójdzie do origin„s głównego oddziału. Gdy jest ona równa current, push pójdzie do origin„s quickfix oddział.
matchingUstawienie zaktualizuje bare„s mistrza w swoim scenariuszu, gdy zostały ustalone. Aby to ustalić, możesz użyć git push origin masterraz.
Jednak upstreamustawienie (a może current) wydaje się, że może być lepiej dopasowane do tego, czego oczekujesz, więc możesz spróbować:
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(Ponownie, jeśli nadal używasz Git przed 1.7.4.2, będziesz musiał użyć trackingzamiast upstream).