如何在我们的登台服务器上切换到特定的git分支并提交id

时间:2012-09-05 12:05:02

标签: git fabric

我希望在我的部署中构建检查用户分支和他正在使用的提交ID的功能。

过去我们只在部署框中签出了master。我做了这个,似乎工作。

git checkout HASH

但是现在我希望能够在我们的登台框上测试分支和哈希。我怎么做?我想如果我重置为HASH,它会推断分支,但这不起作用。我以为我可以做一个checkout branch HASH

如何在我们的登台服务器上重新创建用户当前签到的分支?

2 个答案:

答案 0 :(得分:3)

提交哈希本身并不是指分支;它指的是可能存在于多个分支上的提交,甚至根本不存在。

分支只是一个指向提交哈希的名称(当提交添加到分支时,此指针会移动。)

要结帐,您需要使用git checkout <branch>

如果您只是推送一个哈希,则需要切换到按名称推送分支,以便在分段框中知道分支名称。

  

如何在登台服务器上的分支上重新创建用户当前签到?

如果您需要,则无需查看分支机构。只需使用git checkout HASH正如您所做的那样。这保证总是反映同样的事情。

答案 1 :(得分:1)

这需要多个命令

除了创建新分支的特殊情况之外, checkout 命令不能同时同时使用分支引用和提交哈希。因此,要将不同分支上的提交签出为分离头:

git checkout <branch_name>
git checkout <commit_hash>

相同的哈希是相同的提交

以上可能不是严格必要的,因为(从实际的角度来看)相同的提交哈希包含相同的内容而不管它所在的分支。例如,提交1d2cad0可以存在于多个分支上,对于分离的头,当你git checkout提交时,你所在的分支应该无关紧要。

例如,如果分支 foo 上存在1d2cad0,则可以从任何分支git checkout 1d2cad0获得,并且您将收到类似于以下内容的消息:

  

HEAD现在是6bce656 ... foo

你处在一个独立的脑袋中,并会看到有关如何处理它的其他说明。对于这个用例,您实际上不需要担心分支本身,除非您想要进行额外的提交,这需要git来跟踪祖先。