1

Тема: видалення кількох останніх комітів

У мене є проект в якому 15 комітів і ще є останні зміни, які я ще не заливав на git.
Як видалити останні 4 коміти і залишити зміни, які я ще не заливав в систему контролю версій, тобто видалити 4 коміти і останні зміни залити, щоб вони були в 12-ому коміті?

Подякували: leofun011

2

Re: видалення кількох останніх комітів

git reset ---> https://git-scm.com/docs/git-reset

3

Re: видалення кількох останніх комітів

Що краще робити спочатку, яка має бути послідовність дій?
Спочатку заливати останні зміни на Git і потім видаляти 4 перед-останні коміти, чи як краще зробити?

4

Re: видалення кількох останніх комітів

Бранч створіть із поточним станом, щоб не загубити, а потім уже грайтеся. В основну гілку на сервері заливайте після того, як будете переконані, що у вас усе добре.

Подякували: leofun011

5

Re: видалення кількох останніх комітів

тобто послідовність така:
- створити гілку (наприклад master2) і зробити в ній коміт з усіма останніми змінами ;
- перейти в мастер і видалити 4 останні коміти;
- злити дві гілки в одну;
- зробити коміт
Якщо я правильно зрозумів.
Як видаляти коміт - git revert назва коміту -> git commit -m 'commit 12' -> git push origin master?
І як зливати дві гілки в одну? Цього робити ще не доводилось

6

Re: видалення кількох останніх комітів

Оскільки ви ще не залили на сервер, то видалити - це
git reset HEAD~4 --hard
Якби залили, то треба було б revert.
Зливати - це merge, але вам того не треба, якщо в мастері все буде нормально. І взагалі краще всі зміни робити в гілках, а потім зливати їх у мастер.

Подякували: tan1

7

Re: видалення кількох останніх комітів

отже
- git reset HEAD~4 --hard
- git add .
- git commit -m 'commit12'

8 Востаннє редагувалося Droid 77 (06.01.2023 21:36:12)

Re: видалення кількох останніх комітів

І не забувайте що саме ім'я master вже заборонено вживати на ґіт. Ображає американців.
Натомість, за умовчанням, пропонується main гілка.

9

Re: видалення кількох останніх комітів

Droid 77 написав:

саме ім'я master вже заборонено вживати на ґіт. ...
Натомість, за умовчанням, пропонується main гілка.

Нічого подібного. В Git перша гілка за замовчаням завжди була і далі залишається master. Називатись інакше вона буде тільки якщо користувач змінив налаштуваня Git.

10

Re: видалення кількох останніх комітів

Є люди, що плутають Java і JavaScript. Чому б не бути тим, хто плутає Git і GitHub?

Подякували: flatliner1

11 Востаннє редагувалося leofun01 (07.01.2023 01:39:48)

Re: видалення кількох останніх комітів

Відповідь містить посиланя на англомовні сторінки
koala написав:

Є люди, що плутають Java і JavaScript. Чому б не бути тим, хто плутає Git і GitHub?

Ну ок, буває. Але там такого теж не є. І в GitLab я не знайшов.
Подібну інфо знайшов тільки в Microsoft.

12

Re: видалення кількох останніх комітів

А чому ви вирішили, що усталені налаштування мають бути описані в правилах сайта? https://github.blog/changelog/2020-08-2 … ositories/

Подякували: leofun011

13

Re: видалення кількох останніх комітів

koala написав:

А чому ви вирішили, що усталені налаштування мають бути описані в правилах сайта?

Бо коли тут (на форумі) щось заборонено, то це описано в правилах форуму. На всіх інших сайтах (які я бачив) - аналогічно.

14

Re: видалення кількох останніх комітів

Так, дійсно, не заборонено. Але типова назва усе ж змінена. 50%.

15

Re: видалення кількох останніх комітів

koala написав:

Є люди, що плутають Java і JavaScript. Чому б не бути тим, хто плутає Git і GitHub?

Дійсно, є такі.
Не уважно прочитав назву цієї теми.   *PARDON*

Подякували: leofun011