2

我来自 SVN 世界,所以我可能无法理解 GIT 中所有细微的概念差异。

我有一个起源/主分支。一段时间以来,我一直在标记大师。然后在生产中发生了一些事情。我们需要修复一个令人讨厌的错误。

所以,我努力地将(结帐)切换到一个标签(我们称之为 prod-1.0)。然后我创建了一个分支。我修改了我的代码,在 origin/prod-1.0-hotfix 中提交。然后我继续将该分支推送到我的遥控器。

现在在 prod 中发现了一个新错误。我以为我可以检查分支“prod-1.0-hotfix”,但事实证明,这不是来自“prod-1.0-hotfix”的代码,而是在我将分支推送到远程时位于 origin/master 中的代码.

有人可以发光吗?

4

1 回答 1

2

分支标签将使用标签当前所在的分支。 https://stackoverflow.com/a/5582368/1354978

https://stackoverflow.com/a/792027/1354978 对该帖子的评论说明了一切。

是的。git 在这方面与颠覆不同。svn 标签基本上将文件复制到一个新文件夹,因此您可以 svn 签出特定的一堆文件,而 git 标签只是指向特定修订的指针。– dbr 2009 年 4 月 27 日 2:17

我认为你应该做的是......从 master 分支到 prod-1.0-hotfix

git reset -—hard  prod-1.0 bad_tag_tag_name
git push origin prod-1.0-hotfix 

这将使用 HEAD @ prod-1.0-hotfix 创建一个远程分支

我喜欢这个网站 gitready.com http://gitready.com/advanced/2009/02/16/convert-git-svn-tag-branches-to-real-tags.html

Thnx 和 +1 给 Erik Petersen,以及 dbr 寻求帮助。

于 2012-08-08T02:57:43.210 回答