Как отправить изменения на гитхаб
Перейти к содержимому

Как отправить изменения на гитхаб

  • автор:

Отправка изменений в GitHub из GitHub Desktop

As you commit changes to your project locally, you can push those changes to GitHub from GitHub Desktop so that others may access them from the remote repository.

Кто может использовать эту функцию.

People with write permissions can push changes to a repository.

Сведения об отправке изменений в GitHub

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

Перед отправкой изменений необходимо обновить локальную ветвь, чтобы включить все фиксации, добавленные в удаленный репозиторий. Если кто-то выполнил фиксации на удаленном компьютере, который не включен в локальную ветвь, GitHub Desktop предложит получить новые фиксации перед отправкой изменений, чтобы избежать конфликтов при объединении. Дополнительные сведения см. в разделе «AUTOTITLE».

Администраторы репозитория могут включать защиты в ветви. Если вы работаете с защищенной ветвью, то не сможете удалить или принудительно отправить ее в ветвь. Администраторы репозитория могут включить другие параметры защищенной ветви для применения определенных рабочих процессов, прежде чем можно будет выполнить слияние для ветви. Дополнительные сведения см. в разделе «AUTOTITLE».

Администраторы репозитория также могут включить наборы правил для ветви, что позволит предотвратить выполнение принудительной отправки, если набор правил не был выполнен. Например, для набора правил может потребоваться определенное соглашение об именовании ветви или номер проблемы в начале сообщения фиксации. GitHub Desktop предупреждает о наборах правил, чтобы предотвратить переход ветви в состояние, в котором вы не сможете отправить изменения. Дополнительные сведения см. в разделе «AUTOTITLE».

Отправка изменений в GitHub

Примечание. GitHub Desktop отклоняет отправку, если она превышает определенные ограничения.

  • Отправка содержит большой файл, размер которого превышает 100 МиБ.
  • Общий размер отправки превышает 2 ГиБ.

Если настроить Хранилище больших файлов Git для отслеживания больших файлов, можно отправить большие файлы, которые в обычном случае были бы отклонены. Дополнительные сведения см. в разделе «AUTOTITLE».

Снимок экрана: панель репозитория. Кнопка, помеченная как

  1. Чтобы отправить локальные изменения в удаленный репозиторий, в строке репозитория щелкните «Отправить источник«.

Снимок экрана: представление

  • Если в локальной ветви нет фиксаций, GitHub Desktop предложит получить новые фиксации из удаленной ветви. В окне «Новые фиксации в удаленном режиме» щелкните «Получить«.
  • При необходимости нажмите кнопку «Предварительный запрос на вытягивание», чтобы открыть диалоговое окно предварительного просмотра, где можно просмотреть изменения и начать создание запроса на вытягивание. Дополнительные сведения см. в разделе «AUTOTITLE».

    Дополнительные материалы

    • «Глоссарий GitHub» в глоссарии GitHub
    • «Фиксация и проверка изменений в проекте в GitHub Desktop»
    • «С помощью Git»

    Отправка фиксаций в удаленный репозиторий

    Используйте git push для отправки фиксаций в локальной ветви в удаленный репозиторий.

    About git push

    The git push command takes two arguments:

    • A remote name, for example, origin
    • A branch name, for example, main
    git push REMOTE-NAME BRANCH-NAME 

    As an example, you usually run git push origin main to push your local changes to your online repository.

    Renaming branches

    To rename a branch, you’d use the same git push command, but you would add one more argument: the name of the new branch. For example:

    git push REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME 

    This pushes the LOCAL-BRANCH-NAME to your REMOTE-NAME , but it is renamed to REMOTE-BRANCH-NAME .

    Dealing with «non-fast-forward» errors

    If your local copy of a repository is out of sync with, or «behind,» the upstream repository you’re pushing to, you’ll get a message saying non-fast-forward updates were rejected . This means that you must retrieve, or «fetch,» the upstream changes, before you are able to push your local changes.

    For more information on this error, see «Dealing with non-fast-forward errors.»

    Pushing tags

    By default, and without additional parameters, git push sends all matching branches that have the same names as remote branches.

    To push a single tag, you can issue the same command as pushing a branch:

    git push REMOTE-NAME TAG-NAME 

    To push all your tags, you can type the command:

    git push REMOTE-NAME --tags 

    Deleting a remote branch or tag

    The syntax to delete a branch is a bit arcane at first glance:

    git push REMOTE-NAME :BRANCH-NAME 

    Note that there is a space before the colon. The command resembles the same steps you’d take to rename a branch. However, here, you’re telling Git to push nothing into BRANCH-NAME on REMOTE-NAME . Because of this, git push deletes the branch on the remote repository.

    Remotes and forks

    You might already know that you can «fork» repositories on GitHub.

    When you clone a repository you own, you provide it with a remote URL that tells Git where to fetch and push updates. If you want to collaborate with the original repository, you’d add a new remote URL, typically called upstream , to your local Git clone:

    git remote add upstream THEIR_REMOTE_URL 

    Now, you can fetch updates and branches from their fork:

    git fetch upstream # Grab the upstream remote's branches > remote: Counting objects: 75, done. > remote: Compressing objects: 100% (53/53), done. > remote: Total 62 (delta 27), reused 44 (delta 9) > Unpacking objects: 100% (62/62), done. > From https://github.com/OCTOCAT/REPO >  * [new branch] main -> upstream/main 

    When you’re done making local changes, you can push your local branch to GitHub and initiate a pull request.

    For more information on working with forks, see «Syncing a fork».

    Further reading

    • The «Remotes» chapter from the «Pro Git» book
    • git remote main page
    • «Git cheatsheet»
    • «Git workflows»
    • «Git Handbook»
    • «Troubleshooting the 2 GB push limit»

    48. Отправка изменений

    Так как чистые репозитории, как правило, расшариваются на каком-нибудь сетевом сервере, нам необходимо отправить наши изменения в другие репозитории.

    Начнем с создания изменения для отправки. Отредактируйте файл README и сделайте коммит

    Файл: README
    This is the Hello World example from the git tutorial. (Changed in the original and pushed to shared)
    Выполните:
    git checkout master git add README git commit -m "Added shared comment to readme"

    Теперь отправьте изменения в общий репозиторий.

    Выполните:
    git push shared master

    Общим называется репозиторий, получающий отправленные нами изменения. (Помните, мы добавили его в качестве удаленного репозитория в предыдущем уроке.)

    Результат:
    $ git push shared master To ../hello.git 2faa4ea..79f507c master -> master

    Примечание : Мы должны были явно указать ветку master для отправки изменений. Это можно настроить автоматически, но я все время забываю нужные команды. Для более простого управления удаленными ветками переключитесь в «Git Remote Branch».

    Как залить изменения на свою ветку в удаленный репозиторий на гитхаб?

    Помоги разобраться, пишет: To https://github.com/project.git ! [rejected] sorvard -> sorvard (non-fast-forward) error: failed to push some refs to hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: ‘git pull . ‘) before pushing again. hint: See the ‘Note about fast-forwards’ in ‘git push —help’ for details. Может кто поделится пошаговой инструкцией, что я делаю не так.

    Отслеживать
    задан 18 авг 2022 в 7:42
    1 2 2 бронзовых знака
    У вас локальная ветка позади ветки удаленной. Попробуйте git pull -r
    18 авг 2022 в 8:21
    Не помогло, к сожалению .
    18 авг 2022 в 8:33
    Возможный дубликат вопроса: Как правильно сделать Push на GitHub?
    18 авг 2022 в 21:36

    1 ответ 1

    Сортировка: Сброс на вариант по умолчанию

    Попробуйте force push — но только если уверены, что с вашей веткой более никто не работает кроме вас.

     git push -f origin HEAD:

    Чтобы такое не повторялось впредь, вам, да, следует почаще затаскивать изменения в свою ветку, — так, как вам подсказали, — git pull —rebase origin

    Либо создайте в репозитории новую ветку и перенесите ваш коммит с помощью git cherry-pick , после чего сделайте commit и push.

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *