Как я могу передать старый тег git?
Итак, два месяца назад я перенес свою кодовую базу в SVN в Git с полной историей изменений. Сразу же после этого мы отметили новый выпуск и продолжили работу. Поэтому, пока мы продолжаем работать в новом теге, некоторые люди продолжают исправлять ошибки в старом теге в SVN, и теперь я хотел бы поместить все эти изменения в этот тег в Git.
Я могу клонировать тег, и make Git позволит мне сделать коммиты в нем, но я ничего не могу сделать с помощью git -push. Проверяя git -log, фиксация существует, но git -st сообщает мне, что я не нахожусь в какой-либо ветке.
Итак, как я могу передать старый тег Git?
Ответы
Ответ 1
Теги не могут перемещаться. Создав тег, указывающий на конкретный коммит, вы не сможете изменить этот тег позже.
Похоже, вы хотели создать ветку вместо этого. Вы должны создать новую ветку (git branch branchname && git checkout branchname
), чтобы не потерять свои фиксации. Затем перетащите эту ветку в репозиторий и попросите разработчиков по выпуску/исправлению ошибок в этой ветке для выпуска.
Ответ 2
Если кто-то приходит сюда после поиска "заменить git тег" или что-то подобное, я рекомендую следующий подход:
git tag -d <tagname>
git checkout <new commit or branch>
git tag -a <tagname>
git push <remotename> <tagname> -f
например:
git checkout 2.0
git tag -d v2.0
git tag -a v2.0 -m"Version 2.0"
git push origin v2.0 -f
Надеюсь, это поможет кому-то.
Ответ 3
Вы имеете в виду ветку, а не тег. Теги в Git представляют собой закладки по времени в вашей основной ветке. Хотя вы можете перезаписать тег (git tag -f
), это не рекомендуется. Я буду только перезаписывать тег, если он еще не был развернут.
Ответ 4
Здесь многое происходит.
-
Похоже, что у вас нет адекватного понимания цели git tag. Я бы рекомендовал прочитать справочную страницу, а также соответствующий раздел Pro Git. Pro Git также отлично вписывается в инструмент, а также git Магия.
-
Как уже отмечалось другими, вы либо уже создали ветвь, либо совершили ошибку, либо просто ошибочно определили ее как тег здесь, либо создали тэг и совершили новые коммиты за пределами ветки и это довольно запутанно. Вы определенно хотите прочитать git branch, чтобы понять, как использовать это, если вы еще не знаете.
-
Похоже, что вы и ваша команда могли использовать поток работы, который поддерживает несколько потоков выпуска, обслуживания и разработки, и для этого я смиренно предложил бы это самый отличный путеводитель от Винсента Дриссена. Я представил это с моей командой у своего последнего работодателя, и это изменило то, как мы работали. Чтение, которое должно дать вам невероятно хорошее представление о том, как git может наилучшим образом поддерживать то, как это звучит, как ваша команда уже может пытаться работать.
-
Невозможно напрямую привязать старый тег. Как отмечают другие, тег - это не что иное, как имя для конкретной фиксации. Тем не менее, у меня есть несколько мыслей, которые могут быть полезны вам.
-
Вы всегда можете проверить ветку на основе тега через git checkout -b my-new-branch name-of-tag
. Это даст вам новый филиал, основанный на этом теге, который вы затем сможете совершить. Совместное использование этой ветки становится таким же простым, как выталкивание его в точку общественного контакта и позволяющее другим вывести его из строя.
-
Если вам нужен движущийся тег, вы делаете что-то "безумное" (по крайней мере, в умах авторов git tag
< вы можете выполнить это, перепрыгнув через несколько пылающих обручей и совершив прыжок через яму кинжала, следуя инструкциям, найденным в разделе Re-Tagging Section git tag
справочная страница.
Ответ 5
Если пользователь использует ту же ветку, из которой пользователь создал старый тег, сначала создайте новый список изменений. в противном случае проверьте тег, а затем создайте новый список изменений. затем используйте ниже шаги для обновления существующего тега с новым номером списка изменений
git tag -f <old tag name>
git push -f --tags
Всего 0 (дельта 0), повторно используется 0 (дельта 0)
+... <old tag name>
→ <old tag name>
(принудительное обновление)
Ответ 6
Если я правильно понимаю вашу проблему, вам нужно создать ветку, где ваши коммиты. Для этого проверьте версию, которую вы хотите нажать. В git bash введите
:
git branch old-version
Это должно создать ветвь в месте вашей фиксации, называемой old-version
. Затем попробуйте нажать.
Ответ 7
Вы должны создать новую ветку в позиции тега, удалить тег, сделать свои коммиты, воссоздать тег и нажать.