Я полностью fubar'd мой местный филиал, и хотел бы начать все сначала. Версия на сервере правильная.
Я не хочу начинать все сначала, я хотел бы использовать мою местную историю, чтобы исправить мою огромную ошибку. (Я могу, если я должен.)
git fetch branchname
и git pull branchname
не работает. Сообщение, которое я получаю, « обновлено », однако моя локальная версия не совпадает с версией сервера.
git pull origin/branchname
выдает ошибку " not found "
Ответы:
во-первых, создайте новую ветку в текущей позиции (на случай, если вам нужна старая «испорченная» история):
обновите список удаленных веток и синхронизируйте новые коммиты:
затем сбросьте вашу ветку до точки, где источник / ветвь указывает на:
будьте осторожны , это удалит все изменения из вашего рабочего дерева !
источник
git fetch origin
перед сбросомorigin/branch
. Никогда.git reset
когда HEAD указывает на ветку, эта ветка будет следовать.Что я делаю, когда путаюсь с локальной веткой, я просто переименовываю сломанную ветку и снова проверяю / разветвляю ветку upstream:
Тогда, если вы уверены, что ничего не хотите от своей старой ветки, удалите это:
Но обычно я оставляю старую ветку на месте, на случай, если у меня там что-то есть.
источник
git checkout -b <branch> --track <remote>/<branch>
Ваша команда работает одинаково хорошо, без--track
?branch.autoSetupMerge
(который я думаю, по умолчанию true) делает--track
неявным. И да, во всех моих настройках git мне не нужно явно--track
делать этоcheckout -b
, кроме YMMV.В вашем местном отделении, вероятно, есть изменения, от которых вы хотите отказаться. Чтобы сделать это, вам нужно будет использовать
git reset
для сброса заголовка ветки до последней точки, которую вы отклонили от ветки вышестоящего репо. Используйте,git branch -v
чтобы найти идентификатор sha1 ветки upstream и сбросить его, используя егоgit reset SHA1ID
. После этого вы сможетеgit checkout
отменить изменения, оставленные в вашем каталоге.Примечание: всегда делайте это на резервном хранилище. Таким образом, вы можете быть уверены, что вы работаете правильно. Или, если это не так, у вас есть резервная копия, к которой можно вернуться.
источник
Это чтобы отменить все ваши локальные изменения в исходной голове
источник