Гость
Форумы / Управление процессом разработки ИС [игнор отключен] [закрыт для гостей] / Вопрос новичка: как удалить коммит в системе git / 15 сообщений из 15, страница 1 из 1
04.11.2020, 14:03
    #40015201
Vasiliy_Kashkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
Собственно вопрос - возможно ли (и как) удалить в системе git некоторый коммит без возможности его восстановления?
...
Рейтинг: 0 / 0
04.11.2020, 14:35
    #40015209
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
Если коммит крайний, то "git reset HEAD~1 --hard", если какой-то более ранний, то, например тут можно прочитать: https://linuxhint.com/how-to-squash-git-commits/, или гугли "git squash"
...
Рейтинг: 0 / 0
05.11.2020, 00:26
    #40015377
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
Vasiliy_Kashkin,

Если где-то в середине, то нет, нельзя удалить коммит.
Можно сделать перезапись истории, чтобы исключить лишний коммит, но это крайне неприятная операция.

Если не запушил, можно откатиться до коммита, который находится перед ненужным коммитом и перекомитить.
...
Рейтинг: 0 / 0
05.11.2020, 00:35
    #40015379
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
hVostt
Если не запушил, можно откатиться до коммита, который находится перед ненужным коммитом и перекомитить.

Если даже и запушил, но это твоя личная ветка, то можно пушнуть с ключом --force (-f) - оно перетрет ветку на ориджине (или там куда ты пушишь). С общими ветками такое делать не стоит, конечно.

hVostt
Можно сделать перезапись истории, чтобы исключить лишний коммит, но это крайне неприятная операция.

Ну, тоже, если ты работаешь на своей собственной ветке, то ничего страшного.
...
Рейтинг: 0 / 0
05.11.2020, 00:39
    #40015380
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
fkthat
hVostt
Если не запушил, можно откатиться до коммита, который находится перед ненужным коммитом и перекомитить.

Если даже и запушил, но это твоя личная ветка, то можно пушнуть с ключом --force (-f) - оно перетрет ветку на ориджине (или там куда ты пушишь). С общими ветками такое делать не стоит, конечно.


Ну а вдруг там пароль от БД с персухой. И тебе может грозить срок, если данные сольют? :)
История всё равно останется, ты не ветку перетрёшь, а всего лишь указатели.

fkthat
Ну, тоже, если ты работаешь на своей собственной ветке, то ничего страшного.


Я к тому, что именно удалить не получится.
Всё остальное это обходные манёвры, чтобы выглядело так, как будто удалил.
...
Рейтинг: 0 / 0
05.11.2020, 07:17
    #40015403
Vasiliy_Kashkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
fkthat,

кажется это не удалит коммит, его можно будет вернуть командой git reset --hard ORIG_HEAD
...
Рейтинг: 0 / 0
05.11.2020, 10:25
    #40015449
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
Vasiliy_Kashkin
fkthat,

кажется это не удалит коммит, его можно будет вернуть командой git reset --hard ORIG_HEAD

Естественно, оно удалит его только локально. Потом пушнешь на сервер с флагом --force и оно прибьет его и на сервере, как-то так.
...
Рейтинг: 0 / 0
05.11.2020, 14:55
    #40015572
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
Нет, оно просто переместит HEAD метку. Придётся ещё сильно поплясать с переписыванием истории, индексов и сборкой мсора чтобы реально удалить блобы этого коммита.
...
Рейтинг: 0 / 0
05.11.2020, 18:56
    #40015685
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
fkthat
и оно прибьет его и на сервере, как-то так


Не :)
...
Рейтинг: 0 / 0
05.11.2020, 19:51
    #40015707
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
hVostt
fkthat
и оно прибьет его и на сервере, как-то так


Не :)

Только что даже проверил специално - прибило намертво.

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$ echo hello > foo.txt
$ git add . && git commit -m 'Commit for fun' && git push
$ git reset HEAD~1 --hard
$ git status

On branch master 
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
     (use "git pull" to update your local branch)

nothing to commit, working tree clean

$ git push --force
$ git status

On branch master
Your branch is up to date with 'origin/master'.                                                                                                                                                                                                                                                             

nothing to commit, working tree clean
...
Рейтинг: 0 / 0
06.11.2020, 09:16
    #40015846
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
fkthat,

но коммит-то остался, просто без именованной головы
и найти его при желании не сложно
...
Рейтинг: 0 / 0
06.11.2020, 10:41
    #40015868
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
fkthat
Только что даже проверил специално - прибило намертво.


Закоммитьте гигабайтный файл, а потом попробуйте его удалить.

PS: несколько лет назад уменьшали размер репозитория, удаляя старый объёмный мусор.
Смогли, но долго, больно и уже точно не помню как :)
...
Рейтинг: 0 / 0
06.11.2020, 12:57
    #40015910
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
hVostt
fkthat,

но коммит-то остался, просто без именованной головы
и найти его при желании не сложно

Наверное, только если хеш на бумажке записать :))
...
Рейтинг: 0 / 0
06.11.2020, 13:00
    #40015914
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
Alexey Tomin
Закоммитьте гигабайтный файл, а потом попробуйте его удалить.

Это да. Но гит он ведь, тоже, не для того, чтобы там 4К-видео хранить :)) Мне главное, только, что какой-нибудь мой говнокоммит ушел из хистори, никто его не увидит, и лицом в толчок меня за него не обмакнет
...
Рейтинг: 0 / 0
06.11.2020, 13:55
    #40015944
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос новичка: как удалить коммит в системе git
fkthat
Это да. Но гит он ведь, тоже, не для того, чтобы там 4К-видео хранить :)) Мне главное, только, что какой-нибудь мой говнокоммит ушел из хистори, никто его не увидит, и лицом в толчок меня за него не обмакнет


в целом да, кто будет ковыряться в бесхозных безымянных ветках?...
никто, кроме может самых упоротых безопасников )))
...
Рейтинг: 0 / 0
Форумы / Управление процессом разработки ИС [игнор отключен] [закрыт для гостей] / Вопрос новичка: как удалить коммит в системе git / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]