Pracujemy z częściowo scentralizowanym repozytorium git tutaj, gdzie pracuję. Każdy deweloper ma własne poddrzewo w centralnym repozytorium git, tak to wygląda mniej więcej tak:Czy mogę mapować lokalne gałęzie do odległych oddziałów z różnymi prefiksami w git?
master alice/branch1 alice/branch2 bob/branch1 michael/feature release/1.0 release/1.1
Praca lokalnie w moim drzewie mam topic/feature
, co odpowiada michael/feature
w centralnej drzewa.
Używam
git push origin topic/feature:michael/feature
do pchania moje zmiany do odległego drzewa. Jest to jednak uciążliwe i podatne na błędy (np. Pomijanie nazwy programisty, błędne wpisanie nazwy funkcji itp.).
Szukam czystszego sposobu na zrobienie tego. Na przykład "git push
". Podejrzewam, że ustawienie innego pilota ze zmodyfikowanym refspec do pobrania zrobi to, ale nie jestem pewien, jak dokładnie to zrobić. Nie jestem również pewien, jak zmodyfikować moje obecne definicje gałęzi, aby użyć innego pilota.
mojego obecnego .git/config
wyglądał:
[remote "origin"] url = git://central/git/project fetch = +refs/heads/*:refs/remotes/origin/* [branch "topic/feature"] remote = origin merge = refs/heads/michael/project
Edit: Chciałbym również, aby zastosować to ciągnie/pobiera. Ale czy zajmuje się tym branch.<name>.merge
?
Będę nadal badał to i zamieszczał tutaj, jeśli coś znajdę, ale mam nadzieję, że otrzymam inne dobre pomysły.
Edytuj 2: Zdecydowałem, że zachowam lokalne i zdalne nazwy oddziałów. Wydaje się, że będzie to najmniej pracy i najmniej podatne na przyszłe problemy.
Po zmodyfikowaniu pliku .git/config, nie zapomnij najpierw wykonać jego kopii zapasowej. Jeśli coś zgnijesz, wystarczy przywrócić znaną dobrą wersję pliku, aby powrócić do odpowiedniego stanu. – webmat
To faktycznie pojawia się dużo podczas wdrażania git do hostowania usług takich jak Heroku, Nodester i AppFog. – studgeek