Ошибка git при попытке нажать на удаленную ветку
Я клонировал репозиторий. Магистральная ветвь из git и создала свою собственную ветвь под названием Li.
Некоторое время назад я внес некоторые изменения и нажал содержимое локального Li на удаленный Li.
Теперь я вытащил некоторые обновления с удаленного мастера на мою локальную ведущую ветку и из локальной ведущей ветки на локальный Li, и я пытаюсь вытолкнуть обновления с локального Li на удаленный Li.
Однако, когда я пытаюсь запустить:
git checkout Li
git push origin Li
Я получаю следующую ошибку:
error: failed to push some refs to '[email protected]:anodejs/system.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Обратите внимание, что моя локальная ветвь мастера обновлена (я вызывал git pull origin master) и сливался в локальную ветвь Li. Однако я добавил локальный Li новый файл, поэтому локальный Li не идентичен локальному хозяину (но это не имеет значения, правильно?)
Спасибо,
Li
Ответы
Ответ 1
Найдите diff с git fetch && git log Li..origin/Li
. Я бы предположил, что вы переустановили или иным образом recut Li
, так как в последний раз вы нажали, но эта команда должна точно указать, что на пульте дистанционного управления нет в локальном. Вы можете найти то, что либо (но не оба) с синтаксисом трех точек: git log Li...origin/Li
.
Если разность будет ожидаться, просто слейте с git merge origin/Li
, а затем git push
. Если изменение нежелательно, перезапишите пульт с помощью git push -f origin Li
. Делайте это только в том случае, если вы хотите отказаться от удаленных изменений.
Ответ 2
Обновления были отклонены, потому что за удаленным пультом находится толкаемый ответчик.
git config --global push.default current
Попробуйте выполнить команду выше, чтобы установить текущую ветвь по умолчанию и
git push
Ответ 3
выполните следующие строки:
git fetch
git remote prune origin
Они обновляют все ваши ссылки.
Затем посмотрите с каким-то GUI git клиентом (например, gitx на mac), как выглядит ваше исходное дерево. Это должно помочь выяснить проблему.
Также убедитесь, что ваше репо не является readonly, и у вас есть разрешение на запись.
Ответ 4
Вы можете принудительно нажимать изменения на удаленный адрес, но он может создавать новую удаленную ветвь
git push subtree_remote_address.git `git subtree split --prefix=subtree_folder`:refs/heads/branch --force
Ответ 5
git branch --set-upstream-to = origin/master
Если у вас возникла ошибка, когда вы находитесь на ветке "master", попробуйте выполнить следующую команду:
git branch --set-upstream-to = origin/master
Или, ярлык:
git push -u origin master