Отправка изменений в 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».
- Чтобы отправить локальные изменения в удаленный репозиторий, в строке репозитория щелкните «Отправить источник«.
Дополнительные материалы
- «Глоссарий 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.