Ответы пользователя по тегу GitHub
  • Как удалить commit?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    # Откатиться на шаг назад
    git reset HEAD~1
    # Удалить из проекта ненужное
    git rm -r --cached "node_modules" # это точно мусор
    git rm -r --cached "src" # вы уверены что это не часть проекта?
    # Создать коммит заново
    git commit 
    # Отправить изменения
    git push --force

    Затем создать .gitignore, чтобы не повторять случайно ошибку.
    Ответ написан
    1 комментарий
  • Как исправить ошибку Failed to push some refs?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Сообщение говорит о том, что вы просите отравить ветку master в репозиторий origin, но в вашем репозитории нет ветки с таким названием. Гит не нашел что отправлять и сказал об этом. Проверьте какие ветки у вас есть и в куда вы коммитили git branch -vv
    Ответ написан
    Комментировать
  • Новая авторизация на Github по новым правилам, как настроить?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Этот вопрос неоднократно поднимался тут. Почему вы не пользуетесь поиском?

    Поменялась схема https-авторизации. Чтобы заново авторизоваться, нужно лишь отменить предыдущую авторизацию. И при повторном push ввести полученный на гитхабе «ключ/токен» вместо пароля. Но я бы посоветовал просто авторизоваться через браузер, это проще.
    Ответ написан
    Комментировать
  • Как выйти из гитхаба?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Параметры вашей подписи коммитов user.name и user.email вообще никакого отношения к авторизации не имеют. А сама она не хранится в конфиге гита и к самому гиту никакого отношения не имеет. Вы же не имя и мыло вводили когда авторизовались? В гите вообще нет понятия авторизации. Вы авторизуете на внешнем сервере не гит, а пользователя компьютера. За хранение паролей отвечает credential manager, а сами пароли хранятся в недрах операционной системы, независимо от гита и хорошо спрятаны.

    «Забыть» авторизацию текущего пользователя можно такой командой.
    echo "url=https://github.com" | git credential reject


    Также можно очистить вашу подпись для текущего пользователя компьютера
    git config --unset user.name
    git config --unset user.email
    Но это не имеет отношения к авторизации
    Ответ написан
    Комментировать
  • Как предложить свои изменения в репозиторий Open Source проекта?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    1. Форкнуть репозиторий: Создать копию репозитория в своем GitHub аккаунте.
    2. Сделать изменения: Сделать необходимые изменения в форкнутом репозитории.
    3. Создать pull request: Отправить запрос на слияние (pull request) в основной репозиторий, описав ваши изменения.
    4. Ожидать рецензии: Ожидать, пока разработчики проекта или модераторы просмотрят ваши изменения и выскажут свое мнение.
    5. Поправить замечания: Если требуется, внести исправления в свои изменения в соответствии с комментариями.
    6. Влить изменения: Если все в порядке, ваши изменения могут быть влиты в основной репозиторий модераторами.
    Ответ написан
    Комментировать
  • Как добавлять определенные файлы в репозиторий?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Берёте и добавляете отдельные файлы в отслеживаемые репозиторием. Способ добавления всегда один.

    Но любая ветка в Git содержит всё состояние проекта целиком. Нельзя в одной ветке отслеживать одни файлы, а в соседней ветке хранить другие файлы. Иначе при переключении веток будут удаляться файлы, которых нет в текущей ветке.

    Если хочется отслеживать модули независимо, создайте под каждый модуль свой репозиторий. Если весь проект у вас тоже в гите, то модули можно вставить как Git-подмодули. А можно оставить их как есть, в виде поддеревьев.
    Ответ написан
    Комментировать
  • Как правильно добавить папку в исключение GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    GitHub тут не при чём, он лишь хранит репозиторий как есть, и не умеет игнорировать папки.

    Не путайте сайт GitHub с программой GitHub Desktop, которая у вас на скрине.

    VSCode уже умеет работать с Git, зачем вам дополнительный клиент?

    Игнор действует только на те файлы, которых ещё нет в Git-репозитории.
    Но если вы уже закоммитили файлы, то Git в любом случае будет показывать их изменения.
    Юра подсказал правильно — вам нужно удалить файлы из репозитория, если вы больше не хотите их отслеживать.
    git rm --cached -r .lh/ 
    git commit -m "Delete files"
    git push
    Ответ написан
    Комментировать
  • Как сделать пулл реквест?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Это значит что ваша ветка не имеет отличий от той, в которую вы делаете пиар. Гитхаб не будет отправлять пустоту, это не имеет смысла. Смотрите внимательно, может коммит на самом деле не создался.

    Либо вы перепутали целевую ветку и отправляете изменения не туда.

    PS. Так и есть. Вы перепутали ветки. Пытаетесь отправить изменения не в ту ветку, от которой создали свою тематическую. Вы забыли отправить на гитхаб ветку main, которую собственно и хотите менять. А ветка main что сейчас на гитхабе, это совершенно левая ветка.
    Ответ написан
  • Как организовать деплой с GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Не создавайте пустой репозиторий, а клонируйте сразу с гитхаба.
    И замените в вашем алгоритме https на ssh и всё заработает.
    Только ссылка ssh выглядит чуть иначе и придется создать ключи.
    Ответ написан
  • Можно ли подружить Apache NiFi Registry с GitLab?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Судя по документации, GitFlowPersistenceProvider не привязан к какому-то конкретному хостингу и позволяет отправлять реестр в любой внешний репозиторий.
    Ответ написан
    Комментировать
  • Как удалить закрытый pull request?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Pull Request в GitHub-репозитории можно только закрыть. Удалить созданный ранее PR невозможно.
    Ответ написан
  • Как сделать push от своего аккаунта Git так, чтобы было видно имя другого пользователя?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    В гите нет никаких аккаунтов. Репозиторий лежит локально и у вас сразу к нему доступ безо всяких паролей. Коммиты вы подписываете любым именем и мылом, каким вздумается. И эту подпись у коммита в дальнейшем невозможно изменить даже если захотеть. И тем более она никак не поменяется при передаче на другой компьютер.

    Аккаунт, под которым вы делали push, никак не отразится на самих коммитах. Каким именем вы их подписали при создании, то имя и останется в них навсегда.
    Ответ написан
    Комментировать
  • Как скрыть Pull Request от других пользователей?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вы наверное хотите скрыть не сам Pull Request, а код, который виден там.
    Но ведь этот код студенты отправляют из своих открытых проектов в ваш открытый проект. Значит код в любом случае виден всем в интернете, причем даже без создания PR.
    Единственный способ скрыть код — публиковать его в закрытые проекты.
    Пусть студенты создают приватные репозитории и дают вам доступ туда.
    Ответ написан
    Комментировать
  • GitHub Pages дает ошибку. Как исправить?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Проверяйте файл .gitmodules
    Смотрите откуда подгружается подмодуль и доступен ли его репозиторий из GitHub.
    Ответ написан
    Комментировать
  • Как авторизоваться на GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    После нажатия «Войти через браузер» должен открыться собственно браузер со страницей гитхаба, где вы должны нажать кнопочку «Разрешить».
    Если вы не разрешили или что-то пошло не так, то только тогда вылезет предложение ввести пароль в терминале. Но там вместо пароля нужно вводить не ваш гитхабовский пароль, а текст токена, который вы должны были заранее создать. Токен вам покажут только один раз, поэтому скопируйте его в буфер и сохраните где-нибудь.
    И вставляйте его в терминале тоже через буфер обмена, чтобы не ошибиться. При вводе паролей с терминале их никогда не видно, не пугайтесь и просто жмите Enter после ввода.
    Ответ написан
    Комментировать
  • Как добавлять изменения в репозиторий git с разных компьютеров?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Просто скопируйте закрытый ключ с одного компа на другой и всё. Либо создайте новую пару на втором компе и добавьте ещё один открытый ключ на гитхаб.
    Ответ написан
    2 комментария
  • Почему не появляется кнопка compare and pull request?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Эти желтые плашки не являются основным способом создания PR. Это просто эвристические подсказки, они могут появиться, а могут и нет. Ведь не всегда после пуша требуется создать PR. И не факт, что GitHub угадает, в какую ветку на самом деле надо делать слияние.
    Те способы что вы указали, они и являются правильными, и не вижу в них ничего неудобного. Есть и другие способы создания PR, например через команду gh pr create, это тоже корректно.
    Ответ написан
    Комментировать
  • Почему невозможно вводить символы в поле для пароля?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    При вводе пароля символы не показываются.
    Но на гитхабе вместо пароля аккаунта надо вводить значение токена.
    Ответ написан
    Комментировать
  • Удалил большой файл, а оно всё равно не пушится и жалуется на этот файл, как исправить?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Мусорный файл нужно удалить из всех коммитов в которых он есть, а не просто из актуального состояния проекта.
    • Если файл добавлен в последнем коммите, то просто поправьте этот коммит через команду commit --amend
    git rm --cached "r0_code/trainee/Java_Полное_руководство_Герберт_Шилдт,_10_е_издание.pdf"
    git commit --amend

    • Если файл добавлен в старом коммите, то можно поправить этот коммит через команду rebase --interactive
    Как пользоваться командой смотрим в инструкциях к гиту.
    Примерно так
    При запуске команды git rebase --interactive <коммит>
    откроется текстовый редактор с планом пересборки ветки.
    • Мы заменяем команду pick на edit в первой строке. Сохраняем и выходим редактора.
    • Репозиторий переключается на состояние, когда мы только что добавили ненужный файл в репозиторий.
    Значит мы можем просто удалить файл способом, который я указал в выше — правим текущий коммит через --amend
    • Затем командой git rebase --continue продолжим пересборку, чтобы гит повторил все последующие коммиты


    • Самый простой и надёжный способ вычистить репозиторий от файла — использовать скрипт filter-repo
    git filter-repo --invert-paths --force --path "r0_code/trainee/Java_Полное_руководство_Герберт_Шилдт,_10_е_издание.pdf"

    Последний вариант полностью автоматизирован и удалит файл сразу из всех веток.
    Ответ написан
    Комментировать
  • Как настроить отслеживание изменений файлов репозитория GitHub в VSCode?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Какой-то плагин всё сломал. Помогает выключение и включение плагинов для Git.
    Ответ написан
    Комментировать