Исходное хранилище используется только мной, но в какой-то момент, начиная с тега 1_1_82, была создана какая-то нежелательная ветка (некоторая ошибка в скрипте build / commit). Затем моя линия разработки продолжилась как обычно с 1_1_84. Теперь я хочу, чтобы последний тег был удаленным мастером. В настоящий момент, если я клонирую его, 1_1_83 устанавливается как рабочая версия по умолчанию, не знаю почему, HEAD указывает на 1_1_142. Во всяком случае, я пытался сделать

git push origin master

И получил

! [rejected]        master -> master (fetch first)

Затем я попытался выполнить ребазинг, но столкнулся с некоторыми конфликтами в ветвях 1_1_82 и 83, что очень утомительно.

Итак, вопрос в том, как сделать, чтобы мой источник / мастер указывал на тег 1_1_42?

enter image description here

git
0
Pablo 28 Май 2017 в 14:25

2 ответа

Лучший ответ

Если вы хотите поместить master рядом с debian_version_1_1_142, просто выполните:

git checkout master
git reset --hard debian_version_1_1_142
git push --force-with-lease origin master

Пожалуйста, будьте осторожны :

  • что флаг --hard потеряет все незафиксированные изменения (спрятайте их, если у вас есть я ...)
  • что флаг --force-with-lease предотвратит ошибку, которую вы получите, но в некоторых случаях (не здесь, потому что это то, что вам нужно) уничтожит некоторую историю на удаленном компьютере.
2
Philippe 28 Май 2017 в 14:03

Если вопрос «как сделать так, чтобы мой источник / мастер указывал на тег 1_1_42»? Ответ

Просто пометьте master с 1_1_42 и git push origin 1_1_42.

Если вы что-то переоценили, ... вы переписали историю. Это означает, что вам нужно принудительно обновить мастер (обратите внимание, потому что вы можете потерять некоторые фрагменты истории git). Просто git push origin master -f.


Редактировать:

В вашем локальном компьютере просто

  • git push origin: master
  • git checkout debian_version_1_1_142
  • git branch -D master
  • мастер веток
  • мастер происхождения git push
0
sensorario 28 Май 2017 в 15:25