Chciałbym użyć po prostu git push
, aby wypchnąć (tylko) bieżącą gałąź do skonfigurowanego źródła. W tym celu ustawiłem git config push.default upstream
, który robi dokładnie to, co trzeba.Prześlij bieżącą gałąź do Gerrit
Teraz próbowałem skonfigurować odpowiedni pilot dla Gerrit, który automatycznie przesyła do refs/for/*
.
Pomysł robi to w ten sposób:
[remote "gerrit"]
url = ssh://host:port/repo
push = refs/heads/*:refs/for/*
chciałbym wpisać git push gerrit
i oczekują git push tylko bieżącego oddziału do prawidłowego ref.
Niestety teraz git próbuje pchnąć wszystkie lokalnych oddziałów do Gerrit. - Czy jest jakiś sposób, żeby powiedzieć gitowi, żeby pchnął tylko bieżącą gałąź, tak jak powyżej z push.default
?
Aktualizacja:
- Git Push może korzystać tylko z jednego refspec.
- Jeśli w wierszu poleceń podano wyraźny refspec, to jest używany.
- Jeśli żadna nie jest podana w linii poleceń, używana jest ta zdefiniowana za pomocą pilota.
- Jeśli nie zostanie podany również z pilotem, wówczas zostanie uwzględniony tylko parametr push.default.
Dla Gerrit potrzebuję refspec jak "branch: refs/for/branch" z odgałęzieniem będącym bieżącą gałęzią.
Pytanie:
- Czy istnieje wyraźny refspec równowartość co push.default = upstream robi?
- Czy istnieje sposób skonfigurowania git, aby zwykły
git push
automatycznie przesuwał się do poprawnego refs/do ref?
Obecnie najlepszym sposobem, jaki znalazłem, jest zawijanie wszystkiego w osobnym skrypcie, jak sugeruje here. Ale nadal nie jestem przekonany, że nie jest to możliwe przy odpowiednim refspec.
Ok. Po prostu sprawdzam różne opcje tutaj. Nauczyłem się, że 'push.default' jest brany pod uwagę tylko wtedy, gdy nie podano refspec. A jeśli dostarczysz refspec (jak 'HEAD') za pomocą wiersza poleceń, to zastąpi refspec podany za pomocą pilota. W związku z tym wystarczyłoby na "ref/heads", co nie jest tym, czego potrzebujesz. Ciekawy. – VonC