我来自SVN世界,所以我可能无法在GIT中获得所有轻微的概念差异。
我有一个origin / master分支。我一直在标记主人。然后是生产中发生的事情。我们需要解决的一个令人讨厌的错误。
所以,我努力地将(checkout)切换到标签(让我们称之为prod-1.0)。然后我创建了一个分支。我修改了我的代码,在origin / prod-1.0-hotfix中提交。然后我继续把那个分支推到我的遥控器上。
现在在prod中发现了一个新的bug。我想我可以检查分支'prod-1.0-hotfix',但事实证明,它不是来自'prod-1.0-hotfix'的代码,而是当我将分支推送到远程时源代码中的代码
有人可以解雇吗?
答案 0 :(得分:2)
分支标记将使用标记当前所在的分支。 https://stackoverflow.com/a/5582368/1354978
https://stackoverflow.com/a/792027/1354978 对该帖子的评论说明了一切。
是的。在这方面,git与颠覆不同。一个svn标签 基本上将文件复制到一个新文件夹,所以你可以svn checkout a 特定的一堆文件,而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,然后寻求帮助。