Страницы

Поиск по вопросам

четверг, 2 апреля 2020 г.

Как удалить ссылку на коммит из Issue? | Коммит не видно через git log

#git #github

                    
Есть репозиторий: https://github.com/w3lifer/yii2-i18n-js.

Нужно было сделать amend сообщения последнего коммита, чтобы тот ссылался на соответствующее
Issue:

git commit -m 'closes #1: ...' --amend
git push -f
git tag -d 2.1.1
git push origin :refs/tags/2.1.1
git tag 2.1.1
git push --tags


Соответственно, автоматически закрылся Issue #1; но как оказалось, я ошибся в номере
— нужно было указать номер #2. Тогда я повторил процедуру, но уже с верным номером:

git commit -m 'closes #2: ...' --amend
git push -f
git tag -d 2.1.1
git push origin :refs/tags/2.1.1
git tag 2.1.1
git push --tags


Я ожидал, что ссылка в Issue #1 исчезнет и он откроется автоматически, но этого не
произошло: там она осталась и указывает на коммит closes #1: ....

Из всего этого у меня возникло несколько вопросов.


Разве коммит closes #1: ... не должен был исчезнуть?
Почему его нигде не видно: ни в git log, ни через gitk, ни через IDE, однако можно
сделать его checkout?
Как его можно удалить из Issue #1?




Насчёт третьего вопроса: пробовал, если просто сослаться на Issue без ключевых слов
для закрытия, а потом удалить ссылку из сообщения, то в Issue ссылка исчезает.




https://github.com/isaacs/github/issues/1081
https://stackoverflow.com/q/21983964/4223982

    


Ответы

Ответ 1



Git не удаляет коммиты и не перезаписывает их. Когда пользователь делает git commit --amend, создается новый коммит, а старый становится невидим, если не привязать его к какой-нибудь ветке. Если вы знаете хэш коммита, то на него можно переключиться командой git checkout 5ccd263b4 (где 5ccd263b4 - ваш хэш). Гитхаб адресует коммиты по хэшу (это хорошо заметно в ссылке, что вы предоставили), потому и отображает ссылку корректно. Плюс к сказанному: у гитхаба скорее всего нет никакой процедуры отслеживания переписывания истории, т.к. сам факт переписывания истории в публичном репозитории является плохой практикой.

Комментариев нет:

Отправить комментарий