Z komentarzy:
Niezgodny z --interactive option
Właściwie ... nie jest już niekompatybilny z Git 2.29 (Q4 2020): „ git rebase -i
” ( man ) uczy się nieco więcej opcji .
Opcje zgodne z:
Zobacz commit 6160b2e (26 sierpnia 2020) autorstwa Junio C Hamano ( gitster
) .
Zobacz commit 2712669 (17 sierpnia 2020) i commit ef484ad (13 Jul 2020) autorstwa Rohita Ashiwala ( r1walz
) .
Zobacz commit a3894aa , commit 7573cec , commit e8cbe21 (17 sierpnia 2020) autorstwa Phillip Wood ( phillipwood
) .
(Scalone przez Junio C Hamano - gitster
- w zobowiązaniu 9c31b19 , 03 września 2020 r.)
rebase -i
: wsparcie --ignore-date
Oryginalna naszywka-przez: Rohit Ashiwal
Podpisana-przez: Phillip Wood
Rebase jest implementowany z dwoma różnymi backendami - „ apply
” i „ merge
”, z których każdy obsługuje inny zestaw opcji.
W szczególności backend Apply obsługuje szereg opcji zaimplementowanych przez ' ( man ) ', które nie są zaimplementowane w backendie scalającym.
Oznacza to, że dostępne opcje są różne w zależności od używanego zaplecza, co jest mylące.git am
Ta poprawka dodaje obsługę --ignore-date
opcji do zaplecza scalania.
Ta opcja używa aktualnego czasu jako daty autora, zamiast ponownie używać oryginalnej daty autora podczas przepisywania zatwierdzeń.
Dbamy o to, aby obsłużyć połączenie --ignore-date
i --committer-date-is-author-date
w taki sam sposób, jak backend aplikacji.
I:
rebase
: Dodaj --reset-author-date
Pomoc: Junio C Hamano
Podpisał: Rohit Ashiwal
W poprzednim zatwierdzeniu wprowadzono --ignore-date
flagę do rebase -i
, ale nazwa jest raczej niejasna, ponieważ nie mówi, czy data autora lub autorki jest ignorowana.
Dodaj alias, aby określić dokładny cel.
--reset-author-date
Również:
rebase -i
: support --committer-date-is-author-date
Oryginalna naszywka-przez: Rohit Ashiwal
Podpisana-przez: Phillip Wood
Ta poprawka dodaje obsługę --committer-date-is-author-date
opcji do zaplecza scalania.
Ta opcja używa daty autora przepisywanego zatwierdzenia jako daty osoby zatwierdzającej, kiedy tworzone jest nowe zatwierdzenie.
git rebase
teraz zawiera na swojej stronie podręcznika :
--committer-date-is-author-date
:
Zamiast używać aktualnego czasu jako daty zatwierdzającego, użyj daty autora zmiany podstawy zatwierdzenia jako daty zatwierdzającego.
Ta opcja implikuje --force-rebase
.
git rebase
zawiera również na swojej stronie podręcznika :
--ignore-date:
Ta flaga jest przekazywana do 'git am', aby zmienić datę autora każdego zatwierdzenia zmiany bazy (zobacz git am
).
Zauważ, że w 2.29 (powyżej), " --committer-date-is-author-date
" opcja " rebase
" i " am
" komend przez pomyłkę straciła adres e-mail, co zostało poprawione w Git 2.29.1 (Q4 2020).
Zobacz commit 5f35edd , commit 16b0bb9 , commit 56706db (23 października 2020) autor: Jeff King ( peff
) .
(Scalone przez Junio C Hamano - gitster
- w zatwierdzeniu f34687d , 26 października 2020 r.)
am
: napraw uszkodzony e-mail z --committer-date-is-author-date
Podpisał: Jeff King
Commit e8cbe2118a ( am
: przestań eksportować GIT_COMMITTER_DATE,
2020-08-17) przepisał kod do ustawiania daty autora do użycia fmt_ident()
, zamiast ustawiania zmiennej środowiskowej i pozwalania na commit_tree()
jej obsługę.
Ale wprowadził dwa błędy:
- używamy ciągu wiadomości e-mail autora zamiast wiadomości e-mail osoby zatwierdzającej
- podczas parsowania identyfikatora polecającego użyliśmy złej zmiennej do obliczenia długości wiadomości e-mail, w wyniku czego zawsze był to ciąg o zerowej długości
To zatwierdzenie naprawia oba, co powoduje, że testowanie tej opcji przez apply
backend rebase " " kończy się sukcesem.
I:
rebase
: napraw uszkodzony e-mail za pomocą --committer-date-is-author-date
Zgłoszone przez: VenomVendor
Podpisane przez: Jeff King
Commit 7573cec52c ("rebase -i: support --committer-date-is-author-date", 2020-08-17, Git v2.29.0-rc0 - merge wymienione w partii nr 13 ) skopiował kod analizujący ident-parsing committera od builtin/am.c
.
Robiąc to, skopiował błąd, w którym zawsze ustawialiśmy wiadomość e-mail na pusty ciąg.
Poprawiliśmy wersję w git-am
poprzednim zatwierdzeniu; to zatwierdzenie naprawia skopiowany kod.
git rebase --root
lub-i
, with--reset-author-date
będzie działać. Zobacz moją odpowiedź poniżej