Ответы пользователя по тегу GitHub
  • Как залить проект на гитхаб с сохранением папок?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Эти папки у вас существуют только в рабочем каталоге и их нет в репозитории, потому что гит отслеживает только файлы. Невозможно закоммитить пустой каталог. Каталоги фигурируют лишь как часть полного пути к файлам.

    Если вам нужно непременно сохранить структуру каталогов, то поместите в них любой файл. Стандартная практика — создавать пустой файл с именем .gitkeep
    Ответ написан
    Комментировать
  • Как опубликовать решение на GitHub без перезаписи существующей ветки?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вы наверное забыли задать имя для собственной ветки.
    Сейчас создайте новую ветку, с именем, которого ещё нет на гитхабе и тогда она ни с кем не будет конфликтовать
    Например так:
    git branch ветка # придумать название вашего проекта
    git switch ветка # сделать эту ветку текущей
    git push -u origin ветка # отправить текущую ветку в ветку «ветка» и связать их
    Ответ написан
    1 комментарий
  • Запрашивает ли у вас Github Desktop пароль от ssh?

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

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Вы не можете войти в каталог, потому что это не каталог вовсе, а ссылка. Стрелочка как бы намекает.
    Это может быть символическая ссылка (symlink), либо подмодуль (submodule), либо вложенный репозиторий (subtree). Скорее всего последнее и вы ранее инициализировали дополнительный репозиторий внутри той папки. Гит это распознаёт и не будет добавлять содержимое каталога в вышестоящий репозиторий. Поэтому гитахабу нечего вам показать внутри того каталога, так как там пусто. Содержимое папки осталось только в рабочем каталоге и не попало в репозиторий.

    Если это так, то вот тут пример как лечить.
    • Удалить папку .git из подкаталога Originalite
    • Удалить эту ссылку из репо git rm --cached Originalite
    • Затем таки добавить папку в репо git add Originalite
    • Закоммитить и отправить на гитхаб.
    Ответ написан
    Комментировать
  • Как на GitHub посмотреть старые версии файлов и кто их изменял?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    В окне просмотра файлов есть кнопочка History — увидите все версии файла 64bed2363ec55696196654.png

    пишет кто залил каждый коммит, на сайте гитхаба такой информации не нашел

    Показывает не кто «залил», а кто создал коммит.
    GitHub не хранит файлы, он хранит репозитории, а в репозиториях есть коммиты, которые подписаны их создателями. Сырую подпись можно увидеть по ссылке patch в окне просмотра коммита.
    64bed4207f76c662267116.png
    Ответ написан
    Комментировать
  • Почему при публикации проекта на git pages в браузере отображается файл readme?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    может быть из-за того, что файлы находятся в папке source

    Вот сами и догадались. У вас в настройках стоит брать страницу из каталога docs, которого нет.
    Вы все правильно поправили. Сейчас у вас создан Workflow, который запускает сборку проекта на серверах гитхаба, затем помещает файлы из папки build в корень ветки gh-pages и страница становится опубликованной.
    Ответ написан
  • Как пушить нескольким пользователям с одной учетной записи компьютера?

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

    Предполагаю, что коммиты вы хотите подписывать реальными именами авторов, поэтому храните настройки подписи не в глобальном конфиге, а в локальном конфиге конкретного локального репозитория. Надеюсь хоть репозитории то у вас разные?

    git config --local user.name ...
    git config --local user.email ...

    Если хочется непременно разные аккаунты на гитхабе, то

    Как разлогиниться в гитхабе?

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

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

    Для этого мы создаём в файле конфигурации ~/.ssh/config несколько виртуальных хостов
    Host github-alice
            Hostname github.com
            IdentityFile=/home/user/.ssh/alice_key
    
    Host github-bob
            Hostname github.com
            IdentityFile=/home/user/.ssh/bob_key

    И поправьте ссылки на origin в своих репозиториях используя псевдоним виртуального хоста
    git remote set-url origin git@github-alice:OWNER/alice-repo.git

    Есть официальная инструкция
    How do I use multiple accounts with the same hosting provider using SSH?
    Ответ написан
    Комментировать
  • Почему не удается запушить на GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    SSH не использую
    Вы используете SSH, причем с ключами RSA.

    В марте 2023 года закрытый SSH-ключ RSA GitHub.com был ненадолго предоставлен в общедоступном репозитории GitHub, поэтому его заменили. Если использовать ключи ECDSA или Ed25519, вы не заметите никаких изменений, и никаких действий не потребуется.

    Если вы видите сообщение Host key verification failed, вам нужно удалить старый ключ, выполнив следующую команду:

    ssh-keygen -R github.com
    Ответ написан
    Комментировать
  • Как создать свой сервер Git LFS?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Воспользуйтесь инструкцией по установке с официального сайта Git LFS
    Ответ написан
    Комментировать
  • Как установить GitHub Desktop на диск D?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    GitHub это же сайт, его нельзя установить. Похоже вы пытаетесь установить программу GitHub Desktop, которая занимает примерно 200-300 МБ на диске после установки. Даже если вы сможете его переместить на другой диск, это вам мало поможет.
    Ответ написан
  • Почему при клонировании репы вылезает сообщение о том, что память не может быть mapped?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Под памятью тут имеется в виду оперативная память. Видимо на хостинге она сильно ограничена.
    Тут написано что клонирование прошло успешно и сбой прошел уже на этапе распаковки файлов в рабочий каталог.
    Вы пробовали узнать что проиходит через git status?
    Ну и сделать как советуют
    git restore --source=HEAD :/
    Ответ написан
  • Как исправить ошибку: The requested URL returned error: 403?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Permission to {repo} denied to {user}
    Это говорит о том, что авторизация прошла успешно, но данному пользователю не предоставлено прав на запись в репозиторий. Ошиблись при создании токена.
    Ответ написан
    Комментировать
  • Не могу захостить сайт потому что использую 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
    Ответ написан
    1 комментарий
  • Почему 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 комментариев