1

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

过去,我们只在我们的部署框中签出 master。我这样做了,它似乎奏效了。

git checkout HASH

但现在我希望能够在我们的暂存盒上测试分支和散列。我怎么做?我想如果我重置为 HASH,它会推断出分支,但这不起作用。我以为我可以做一个checkout branch HASH.

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

4

2 回答 2

3

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

分支只是一个指向提交哈希的名称(并且此指针随着提交添加到分支而移动)。

要签出分支,您需要使用git checkout <branch>.

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

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

如果这就是你所需要的,你不需要检查一个分支。就像git checkout HASH你已经在做的那样使用。这保证总是反映同样的事情。

于 2012-09-05T12:08:48.490 回答
1

这需要多个命令

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

git checkout <branch_name>
git checkout <commit_hash>

相同的哈希是相同的提交

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

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

HEAD 现在在 6bce656... foo

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

于 2012-09-05T12:21:51.000 回答