Задать вопрос
Ответы пользователя по тегу GitHub
  • Не могу захостить сайт потому что использую ejs шаблонизатор, для хостинга нужен файл index.html а у меня index.ejs, как мне захостить такой сайт?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    GitHub Pages поддерживает только статические сайты, а EJS является шаблонизатором, работающим на стороне сервера. Вместо того, чтобы использовать EJS для рендеринга на клиентской стороне, вы можете предварительно сгенерировать HTML-файлы с помощью EJS на вашем локальном компьютере, а затем разместить их на GitHub Pages. Если ваш сайт зависит от серверных операций или динамического контента, вам нужно будет найти другой хостинг.
    Ответ написан
    Комментировать
  • Почему Git не находит удаленный репозиторий на GitHub?

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

    Скорее всего нужно подсказать хосту, какой именно ключ использовать для каждого из подмодулей.
    Для этого мы создаём в файле конфигурации ~/.ssh/config несколько виртуальных хостов
    Host github.com-module-1
            Hostname github.com
            IdentityFile=/home/user/.ssh/module-1_deploy_key
    
    Host github.com-module-2
            Hostname github.com
            IdentityFile=/home/user/.ssh/module-2_deploy_key

    И поправьте ссылку на подмодуль в .gitmodules используя псевдоним виртуального хоста
    git@github.com-module-1:OWNER/repo-submodule-1.git

    Сам не проверял, пишу основываясь на официальной документации GitHub:
    Authentication / Connect with SSH / Managing deploy keys
    Ответ написан
    2 комментария
  • Почему Git запрещает мне git push?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Другом ответе показали обходное решение с переходом на SSH-протокол.
    Оно конечно сработает, но что, если нужно-таки работать через HTTPS?

    Тогда стоит проверить, что токен правильный, срок его не закончился, и токену прописаны права на запись в репозиторий. Можно попробовать пересоздать токен повнимательней и затем попробовать снова.

    Предварительно придется отменить старую неудачную авторизацию,
    особенно если вы зачем-то ранее ввели пароль вместо токена.
    echo "url=https://github.com" | git credential reject


    На рабочем компе предпочитаю HTTPS, так как он удобнее и надежнее. Причем без токенов, достаточно OAuth-авторизации через браузер. После первого push вход происходит буквально в один клик.
    Не надо никуда ходить, не надо создавать ключи или токены, всё работает автоматически.
    Если у вас не предлагает такой авторизации, значит гит старый, либо неполный, установлен без credential manager.
    Ответ написан
  • Как на GitHub поменять целевую ветку для PR?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Нажав кнопку Edit, вы сможете не только название PR отредактировать, но и сменить целевую ветку.
    645acf0001bd8336037858.png
    Ответ написан
    Комментировать
  • Как разрабатывать игру вместе с другом?

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

    Есть официальная книга Pro Git, она сложновата для новичков, но её тоже стоит прочитать позже.
    Ответ написан
    Комментировать
  • Почему каталог с React-приложением не загружается на GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Как так получилось, что вы обнаружили проблему только при отправке на гитхаб? Вы вообще не используете гит в локальной разработке?

    Ваша проблема в том, что при изначальном создании приложения командой create-react-app сразу инициализируется Git-репозиторий внутри каталога с приложением. Если вы решили не работать в этом репозитории, а отслеживать изменения client и server в другом общем репозитории, то вам нужно удалить тот вложенный репозиторий из папки client. Иначе гит будет игнорировать изменения там и подумает что это вы подключили подмодуль (submodule).
    # удалите папку .git, которая внутри каталога client
    rm -rf "client/.git"
    # скажите гиту, чтобы он забыл, что перед этим видел там вложенный репозиторий 
    git rm --cached "client/"
    # теперь получится добавить приложение в ваш основной проект
    git add "client/"
    Ответ написан
    Комментировать
  • Как связать локальный проект с другим репозиторием на GitHub?

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

    Если же хочется непременно объединить две истории, то вам нужно предварительно подгрузить историю с гитхаба к себе, и только потом отправлять.

    Например пересадить вашу локальную ветку поверх того коммита с гитхаба
    git pull --rebase origin main

    Либо через коммит слияния
    git pull --allow-unrelated-histories origin main
    Ответ написан
    9 комментариев
  • Как залить изменения в определеную папку на GitHub?

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

    В вопросе чувствуется какой-то подвох.
    Что именно у вас не получается?
    Что имелось в виду под
    Разделили по папкам

    Когда вы делате pull из main, то эти папки не появляются у вас локально?

    git commit -m "first commit"
    git push -u origin main
    это довольно странные команды. Они для случая когда вы заливаете новый проект в пустой репозиторий на гитхабе. Но у вас на гитхабе видимо уже есть проект. Чтобы внести изменения вы должны наверное клонировать с гитхаба, создать свою ветку и в ней изменить, и отправить изменения обратно.
    И делается это точно не теми командами которые вы процитировали. Рекомендую вам почитать учебник по гиту, а не вбивать непонятные заклинания в терминал в надежде на чудо.
    Ответ написан
    Комментировать
  • Я запушил в ветку на GitHub. Отображается "Updated 6 hours ago", но в проекте ничего не обновлено. Что делать?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Сообщение говорит о том, что последний коммит был сделан шесть часов назад. Даже если Push сделан вот только что.
    Если вы что-то делали в рабочем каталоге и забыли закоммитить, то push эту работу никуда отправлять не будет.
    Отправляется только то, что закоммичено. Сам рабочий каталог не находится в репозитории.
    Ответ написан
    Комментировать
  • Почему не отображает картинки, анимации, js-файл на GitHub Pages?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Зачем вы лезете в папку src? Там же исходники, а не собранный проект.
    Сделайте сборку не в dist/, а в папку docs/
    При активации GitHub Pages выберите источником не корень проекта /, а папку docs/
    Тогда заработает нормальная ссылка https://sivlvy.github.io/
    642c65afea106486327507.png
    Ответ написан
    Комментировать
  • Как удалить 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 не привязан к какому-то конкретному хостингу и позволяет отправлять реестр в любой внешний репозиторий.
    Ответ написан
    Комментировать