Що стосується минулої бази даних, яку ви не зробили належним чином, ви зараз (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і збережіть запис автозахисту в реєстр скриньки, а не просто видаляючи його.