Контакты
Местоположение
США, California

Достижения

Все достижения (9)

Наибольший вклад в теги

Все теги (89)

Лучшие ответы пользователя

Все ответы (297)
  • Как почистить git репозиторий?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вот несколько фактов, которые помогут тебе понять как работает Git. Можешь выписать в тетрадку.
    • Файл .gitignore предназначен для описания того, что мы не хотим СЛУЧАЙНО добавить в репозиторий. Либо не хотим случайно удалить переключив ветку.
    • Мы можем ПРИНУДИТЕЛЬНО добавить в репозиторий ЛЮБОЙ файл, даже если он описан в .gitignore.
    • Добавление файла в .gitignore не удалит сам файл из репозитория. Если файл УЖЕ в репозитории, то он продолжит отслеживаться, независимо от наличия .gitignore.
    • Если ты больше не хочешь отслеживать какой-то файл, то просто удали его из репозитория.
    • Ключ --cached позволит оставить файл в рабочем каталоге если он нужен.
    git rm --cached -- '.DS_Store'
    git commit

    Но последний рецепт сработает только на твоём компьютере. Если коллеги переключатся на этот коммит, то файл удалится у них из рабочего каталога.
    Ответ написан
    4 комментария
  • Безопасно ли удалить pull request?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Не нужно ничего удалять для доработки задачи!
    Просто вернись в свою тематическую ветку. Добавь новые коммиты с исправлениями и отправь их на гитхаб.
    Твой Pull Request обновится автоматически.

    Аналогично если на Code Review будут замечания, то ты их просто исправляешь локально в той же тематической ветке и пушишь. Доработки сразу попадут в Pull Request.
    Ответ написан
    Комментировать
  • Почему после команды git add происходит перезапись строки и новое изменение, а не только добавление нового изменения?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Видишь знак красный? Это и есть причина. В последней строке текста желательно всегда нажимать Enter, чтобы добавился символ новой строки. GitHub даже особо помечает такие места.

    61f18e243f64f153432063.png
    Строки без переноса в конце это плохо для Git. Так как если тебе захочется добавить новую строку в файл, то сначала придётся добавить в конец последней строки символ переноса, т. е. ИЗМЕНИТЬ. В истории будет видно это изменение, хотя формально, казалось бы, ничего не меняли. Это запутывает просмотр реальных изменений.

    Поэтому ВСЕГДА добавляй перенос в последней строке кода. В большинстве редакторов это выглядит как добавление пустой строки в конце, но на самом деле никакой «лишней» строки нет, это фантом.
    Если смотреть через GitHub то пустой строки уже нет.
    Ответ написан
    1 комментарий
  • Как из гита навсегда удалить файл?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Самый надёжный способ вычистить репозиторий от файла — использовать скрипт filter-repo
    # клонируем репозиторий в соседний каталог
    # иначе придётся использовать ключ --force
    git clone --no-local . ../clonerepo/
    # переходим в свежий клон
    cd ../clonerepo
    # чистим
    git filter-repo --path "path/to/file" --invert-paths
    # проверим что файл исчез
    git log --oneline --name-status -- "path/to/file"
    Ответ написан
    Комментировать
  • Git. В терминале вылазит какой-то END и другое. Как убрать?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git хочет показать вам более одного экрана с информацией, для этого он вызывает стандартную программу пейджера Unix less. Просто введите q, чтобы вернуться в терминал, когда вы больше не хотите перемещаться по выходным данным.

    j перейти на одну строку вниз
    k переместиться на одну строку вверх
    space перейти на одну страницу вниз
    b перейти на одну страницу вверх
    h показать помощь

    Если вы не хотите less, просто замените его другим пейджером в конфигурации. Если вам вообще не нужен пейджер, просто используйте cat:

    git config --global --add core.pager cat
    Ответ написан
    3 комментария