Що стосується минулої бази даних, яку ви не зробили належним чином, ви зараз (Git 2.12, Q1 2017) git rebase --quit
Див. Комітет 9512177 (12 листопада 2016 р.) Від Nguyễn Thái Ngọc Duy ( pclouds
) .
(Об’єднав Хуніо С Хамано - gitster
- у комітеті 06cd5a1 , 19 грудня 2016 р.)
rebase
: додати --quit
до реконструкції очищення, залиште все інше недоторканим
Бувають випадки, коли ви вирішили перервати незавершену базу даних та переходите робити щось інше, але ви " git rebase --abort
" забудете зробити це спочатку . Або ребаза триває так довго, що ви про неї забули. На той момент, коли ви зрозумієте, що (наприклад, запустивши іншу ребауз), вже пізно переймати свої кроки. Розчин зазвичай
rm -r .git/<some rebase dir>
і продовжувати своє життя.
Але можуть бути два різних каталоги для <some rebase dir>
(і це, очевидно, вимагає певних знань, як працює база даних), і " .git
" частина може бути набагато довшою, якщо ви не знаходитесь у топ-режисі чи на пов'язаному робочому віці. І " rm -r
" робити це дуже небезпечно .git
, помилка там може знищити об'єктну базу даних або інші важливі дані.
Надайте " git rebase --quit
" для цього випадку використання, імітуючи прецедент, який є " git cherry-pick --quit
".
Перед Git 2.27 (Q2 2020), запис, створений " git merge --autostash
" для збереження початкового брудного стану, був відкинутий помилково після " git rebase --quit
", який було виправлено.
Див. Команду 9b2df3e (28 квітня 2020 р.) Від Дентона Лю ( Denton-L
) .
(Об'єднав Хуніо С Хамано - gitster
- у комітеті 3afdeef , 29 квітня 2020 р.)
rebase
: Зберегти autostash вступ в stash reflog
на--quit
Вийшов із реєстрації: Дентон Лю
У a03b55530a (" merge
: learn - опція аутосташ", 2020-04-07, Git v2.27.0 - злиття, зазначене в партії №5 ), --autostash
опція була введена для git merge
.
(Див. Розділ " Чи можна" git pull
"автоматично зберігати та відображати зміни в очікуванні? ")
Зокрема, коли git merge --quit
це запускається з наявним записом автозавантаження, він зберігається в рефлекторному сховищі.
Це контрастує з поточною поведінкою того, git rebase --quit
де запис автозахисту просто випав із існування.
Прийміть поведінку git merge --quit
в git rebase --quit
і збережіть запис автозахисту в реєстр скриньки, а не просто видаляючи його.