Ответ 1
Я знаю, что это поздний ответ, но он может помочь другим.
Прежде чем начать, если вам неудобно работать с командной строкой, вы можете выполнить все следующие шаги, используя SourceTree, GitExtension, GitHub Desktop или ваш любимый инструмент. Просто следуйте инструкциям:
Чтобы решить эту проблему, у вас может быть два сценария:
1) Исправить только ветку удаленного репозитория, которая находится за коммитом
Пример: обе ветки находятся на удаленной стороне
голова === Мастер ветка
позади === Разработка ветки
Решение:
i) Клонируйте репозиторий в локальную рабочую область: это даст вам ветку Master, которая впереди с коммитом
git clone repositoryUrl
ii) Создайте ветку с именем Develop и перейдите к ней локально
git checkout -b DevelopBranchName // this command creates and checkout the branch
iii) Вытащить из удаленной ветки Develop
git pull origin DevelopBranchName
iv) Объединить локальный филиал Develop с удаленным филиалом Develop.
git merge origin develop
v) Переместить объединенную ветвь в удаленную ветвь разработки
git push origin develop
2) Локальная мастер-ветка находится за удаленной мастер-веткой
Это означает, что каждая локально созданная ветвь позади.
Перед этим вы должны зафиксировать или спрятать все изменения, которые вы внесли в ветку за коммитами.
Решение:
i) Оформить заказ в местном филиале Master
git checkout master
ii) Извлечение из удаленной мастер-ветки
git pull origin master
Теперь ваш локальный ведущий синхронизирован с удаленной веткой, но другие локальные удаленные устройства не синхронизируются с вашей локальной ветвью из-за вышеуказанной команды. Чтобы это исправить:
1) Оформите ветку, которая находится за вашей локальной веткой Master
git checkout BranchNameBehindCommit
2) Объединение с локальной веткой Мастер
git merge master // Now your branch is in sync with local Master branch
Если эта ветка находится в удаленном хранилище, вы должны отправить свои изменения
git push origin branchBehindCommit