Обновление от 2021 года (8 лет спустя): вы должны больше не использовать git checkout
, а git switch
git switch -c try_to_commit 2fb14b7
Почему это не сжимается?
Поскольку вы объединяете родительский (прошлый) коммит (3e7a060) с новым 2fb14b7
| | * e2a1c13 (HEAD, refs/stash, trying_to_squash) WIP on temp: 2fb14b7 hw7
| | |\
| | | * 429b1de index on temp: 2fb14b7 added hw7
| | |/
| | * 2fb14b7 <-- added hw7 (more recent commit)
| | * 39224ad <-- (another_branch) added hw3
| | * fe9252d <-- hw2 added in master
| | * 3e7a060 <-- adding hw2.txt (past old commit)
Я бы предпочел создать ветку в прошлом коммите и объединить более поздний коммит:
git switch -c try_to_commit 3e7a060
git merge --squash 2fb14b7
Что это делает с моим хранилищем?
git rebase --interactive 3e7a060
Он пытается воспроизвести текущую ветку try_to_commit
поверх 3e7a060: это должно позволить выбрать/сжать коммиты, но не забудьте затем воспроизвести e2a1c13 поверх воспроизведенной ветки.
Я бы предпочел перебазировать всю ветку try_to_commit, созданную из e2a1c13 вместо 3e7a060, и используя параметр Git 2.18, Q2 2018, --rebase-merges
:
git switch -c try_to_commit c39d943
git rebase --rebase-merges --interactive 3e7a060
Обратите внимание, что сообщение (nothing to squash)Already up-to-date
изменится с git 2.32 (второй квартал 2021 г.): несколько вариантов информационного сообщения Already up-to-date
были перефразированы.
См. commit ad9322d (2 мая 2021 г.) от Джош Сореф (jsoref
).
См. коммит 80cde95 (2 мая 2021 г.), автор Эрик Саншайн (sunshineco
).
(Объединено Юнио С. Хамано -- gitster
-- в commit 5feebdd, 11 мая 2021 г.)
merge
: исправлена замена обновленных компонентов сообщения.
Соавтор: Эрик Саншайн
Подписано: Джош Сореф
Подписано: Эрик Саншайн< / суп>
Переписанный git-merge
(man) из оболочки в C в 1c7b76b (сборка в слиянии, 07 июля 2008 г., Git v1.6.0-rc0 -- merge) случайно преобразовал сообщение:
Already up-to-date. (nothing to squash)
to:
(nothing to squash)Already up-to-date.
из-за перевернутых printf()
аргументов.
Эта проблема осталась незамеченной, несмотря на то, что на протяжении многих лет ее затрагивали:
- 7f87aff (обучение/исправление параметров pull/fetch -q/-v, 2008–11 -15, Git v1.6.1-rc1 -- слияние)
- bacec47 (
i18n
: git-merge
основные сообщения, 22 февраля 2011 г., Git v1.7.5 -rc1 -- объединить)
- по касательной от bef4830 (
i18n
: слияние: помечать сообщения для перевода, 17 июня 2016 г. , Git v2.10.0-rc0 -- слияние, указанное в пакет №5)
- 7560f54 (
treewide
: исправить несколько , 23 августа 2017 г., Git v2.15.0- rc0 -- слияние, указанное в пакет № 7) (в древовидной структуре: исправить несколько обновлений до актуальности, 23 августа 2017 г.).
Исправьте это, восстановив сообщение в предполагаемом порядке.
person
VonC
schedule
15.05.2021