git - 如何仅为特定分支创建 Git 标签?

标签 git svn version-control

可能是一个非常基本的问题。但即使阅读了多种资源,我也无法确定。

In SVN, I used to create a tag called dev_tag from the branch called dev_branch. I also have a requirement to checkout the dev_tag into checkout_dir and do a maven build.



SVN - 这是我之前做的
 ~ -> svn copy -m  svn+ssh://<repo>/branches/dev_branch/ svn+ssh://<repo>/tags/dev_tag/ 
 ~ -> svn co svn+ssh://<repo>/tags/dev_tag/ checkout_dir
 ~ -> cd checkout_dir
 ~/checkour_dir -> mvn clean package

GIT - 如何 ?

How to do the above in Git? This is how my git looks now.


 ~ -> git branch -l
  dev_branch
* master

重新措辞:
同意,w.r.t 只是创建一个标签。我的问题更多是关于

"Suppose, if i had the git repo contain the master branch(for prod deployment) and dev branch(for QA deployment) each having different changes. Next, I create a tag by typing 'git tag mytag' with current branch as master. Now to QA , i would need to give commands which will only checkout the dev branch content on which they can do mvn build. With the same tag, I should be able to checkout the master branch content which can be built and used for prod deployment."



最后,这就是我为特定分支创建 Git 标签并为相同的 tar 创建
这有助于我分别构建 qa 和 prod 代码。

QA_BUILD
git clone -b dev_branch gitserve:repo.git qa
cd qa
tag -a qa_tag
git commit -a
git push --tags
git archive --format=tar --remote=gitserve:repo.git tags/qa_tag > /tmp/qabuild/qa.tar
cd  /tmp/qabuild
tar -xvf qa.tar
mvn clean package

PROD_BUILD
git clone -b master gitserve:repo.git prod
cd prod
tag -a prod_tag
git commit -a
git push --tags
git archive --format=tar --remote=gitserve:repo.git tags/prod_tag > /tmp/prodbuild/prod.tar
cd  /tmp/prodbuild
tar -xvf prod.tar
mvn clean package

最佳答案

标签在 git与它们在 svn 中的不同.它们本质上等同于固定分支(即,一旦创建,它们就不会随着进一步的提交而移动)——只是一个指向简单提交的指针。因此,要创建标签,您需要执行以下两件事之一 - 如果您已经 checkout 要标记的提交,则可以在您所在的位置放置一个标签:

git tag <tagname>

如果您不在要标记的提交处,则需要使用 git log或其他一些方法来找到你想要的提交的 SHA 哈希值,然后你可以运行:
git tag <tagname> <sha>

(或者,您可以 git checkout <sha>; git tag <tagname> ,但这是不必要的 checkout ,如果您忘记重新 checkout 到您想要进行 future 开发工作的位置,可能会造成困惑。

关于git - 如何仅为特定分支创建 Git 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12529589/

相关文章:

git - 可以从 github 中挑选所有 PR( pull 请求)吗?

security - svn 的 SSL 协商失败

svn commit后Git推送自动部署到Heroku?

svn merge with --reintegrate 提示缺少范围,但 mergeinfo 似乎是正确的

git - 对 Unity 项目执行版本控制的最佳方式

git - 我可以在 GitHub pull 请求中更改提交的作者而不影响 `master` 分支的历史记录吗?

git - 有没有办法让 Phabricator 将差异推送到存储库?

git - 配置 Jenkins 和 Git/GitHub

version-control - 使用 TortoiseHg,我如何从 checkin /推送中排除一个文件,但仍然可以更新它?

svn - 版本控制让我难过