Odpowiedź @Charles jest poprawna. W każdym razie skończyło się na tym, że korzystałem z tego wiele razy, przede wszystkim do zmiany bazy konfiguracji w projekcie
* a8f9182 (HEAD -> produkcja) konfiguracja produkcyjna
| * daa18b7 (pre) konfiguracja przedprodukcyjna
| /
| * d365f5f (lokalna) konfiguracja lokalna
| /
* 27d2835 (dev) niesamowita nowa funkcja, która uratuje świat
* | 56d2467 (master) nudny stan sztuki dla projektu
| /
że tworzę dla niego nowe polecenie:
$ cat ~ / bin / git-rebaseshot
COMMIT = 1 $
DEST = $ {2: -HEAD}
git rebase $ {COMMIT} ^ $ {COMMIT} --onto $ DEST
normalnie chcesz automatycznie uzupełniać nazwy gałęzi dla tego polecenia, więc dodaj to źródło tej funkcji (dodając do .bashrc lub .profile):
_git_rebaseshot ()
{
__gitcomp_nl "$ (__ git_refs)"
}
autouzupełnianie git wyszuka go
możesz użyć tego polecenia w następujący sposób:
# rebase config on prepro on actual HEAD
$ git rebaseshot prepro
# rebase config on local onto dev
$ git rebaseshot local dev
# rebase production config on master
$ git rebaseshot pro master
Kiedy poprawnie podzielisz cechy, możliwości są nieograniczone.
* a8f9182 (HEAD -> postgres) Konfiguracja BBDD
* a8f9182 (lokalna) konfiguracja lokalna
* a8f9182 (debugowanie) konfiguracja poziomu dziennika
* a8f9182 (dev) nowa funkcja
|
Myślę, że to jest to, co kołdra ludzie lubią robić.
to polecenie i tak będzie działać z dowolnym sha / ref, który podasz:
$ git rebaseshot <Feature branch> master
$ git rebaseshot <commit of XX> master