2012-03-02 58 views
2

我有一个bare_repo克隆到三个环境。当我在dev上工作并完成我的工作时,我希望能够对其进行标记,然后ssh进入测试并拉出特定标签。如何拉一个特定的标签?

例如:让我们说在DEV上我做了三次提交:1,2,3并且可以说我把它标记为2 git tag -a 2。然后我做一个git add -u; git commit -m“woo!”; git push --tags。然后我ssh进入测试,我想做一个git pull,但我不想提交提交3.我只想拉到标签的所有内容2.我该怎么做?

编辑:替代方案是能够将裸露回购的特定提交提交给其他克隆。

+0

可能重复的[GIT从特定标签拉/提取](http://stackoverflow.com/questions/3964368/git-pull-fetch-from-specific-tag) – Woot4Moo 2012-03-02 14:57:34

+0

我已经读过,我没有认为它的确如此。 – 2012-03-02 14:59:31

+0

我对这个答案也很感兴趣(如何获取一个特定的标签而不需要读取所有*标签),因为每次读取* all *标签会导致大量的膨胀并导致git在最坏的情况下“git gc”可能的时间(或者至少这是它的样子;可能我错了)。我希望我现在可以取得我感兴趣的标签。 – Quuxplusone 2016-02-23 08:30:31

回答

1

做一个

git fetch

摆脱回购所有的变化后面是

git reset --hard 2

在这个标签来获取存储库状态。

+0

这看起来好像是如何到达特定的时间点,但不会像OP似乎要求的那样拉一个单一的变化。 – 2012-03-02 15:05:57

+1

谢谢你的回答,但这似乎有点黑客。他们真的没有办法像'git pull --tagname'这样做,其中TEST和PROD只会从提交之​​前和之后提交提交到一个标记? – 2012-03-02 15:21:35

+0

我不认为它是hacky。这是一些部署工具正在执行的方式。如果你开始合并,你总会冒险得到合并冲突。特别是当一个标签可以指向非常承诺,无论它是否在不同分支的时间前移。 – iltempo 2012-03-02 15:56:31

相关问题