2257

Git shit

Git сложен: легко всё проебать, и трудно понять как исправить. Документация Git - это финиш: чтобы найти решение, тебе заранее надо знать название фишки, которая вернет всё на место.

Популярно опишу несколько ситуаций, из которых мне пришлось выбираться:

Бля, я накосячил, где у git волшебная машина времени!?!

Используйте это, чтобы вернуть случайно удалённые штуки или убрать то, чем вы всё сломали, или восстановиться после неудачного слияния, или просто вернуться туда, когда всё работало. Я ОЧЕНЬ ЧАСТО использую reflog. Снимаю шляпу перед теми, кто предложил добавить это.

Бля, я закоммитил и вспомнил, что кое-что забыл!

Обычно я это использую, когда коммичу, потом запускаю тесты/сканеры... и блин, я не поставил пробел после знака равно. Также можно сделать изменения в новом коммите и использовать rebase -i чтобы склеить оба коммита вместе, но так в миллион раз быстрее.

Предупреждение: никогда не изменяйте коммиты, отправленные в публичную ветку! Изменяйте только коммиты в вашей локальной ветке, иначе вам пиздец.

Бля, мне нужно изменить сообщение моего последнего коммита!

Ебаные требования по наименованию.

Бля, Я случайно закоммитил что-то в мастер, хотя это должно быть в новой ветке!

NB: это не будет работать, если вы уже отправили коммит в удалённую ветку, и если вы пробовали сделать это как-то по-другому, может помочь git reset HEAD@{количество-коммитов-назад} вместо HEAD~. Ёбушки-воробушки. Так же многие люди предлагали сделать то же самое, но короче. Спасибо всем!

Бля, я случайно закоммитил не в ту ветку!

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

Бля, я пытаюсь открыть diff, но ничего не происходит?!

Если вы уверены, что изменили файлы, но diff пуст, возможно вы индексировали изменения (add) и нужно добавить специальный флаг.

Бля, мне нужно отменить коммит, который был 5 коммитов назад!

Вам не нужно откатываться назад и копипастить старый файл в существующий! Если вы закоммитили хрень, её можно убрать с revert.

Также можно отменить только один файл вместо целого коммита! Но конечно, (как всегда у git`а) это совершенно другой набор чёртовых команд...

Бля, мне нужно отменить изменения в файле!

Когда до меня это дошло, это было ОХУЕННО. Если серьезно, то схуяли checkout -- лучший способ отменять изменения? :угрожает-линусу-торвальдсу:

Нахуй всё, я сдаюсь.

Спасибо Eric V. за эту подсказку. Все жалобы по поводу использованию sudo в этой шутке могут быть направлены сразу ему.

Вообще говоря, если ваша ветка настооолько загажена, что нужно вернуться к удалённому состоянию в "git-корректном стиле" попробуйте это, но это необратимо!

https://ohshitgit.com/ru

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества