我想在我的部署中构建检查用户分支和他正在使用的提交 ID 的能力。
过去,我们只在我们的部署框中签出 master。我这样做了,它似乎奏效了。
git checkout HASH
但现在我希望能够在我们的暂存盒上测试分支和散列。我怎么做?我想如果我重置为 HASH,它会推断出分支,但这不起作用。我以为我可以做一个checkout branch HASH
.
如何在我们的登台服务器上重新创建用户当前在他的分支上的签到?
提交哈希本身并不引用分支;它指的是可能存在于多个分支上的提交,甚至根本没有。
分支只是一个指向提交哈希的名称(并且此指针随着提交添加到分支而移动)。
要签出分支,您需要使用git checkout <branch>
.
如果您只是推送一个哈希,则需要切换到按名称推送分支,以便在您的暂存框上知道该分支名称。
如何在我们的登台服务器上重新创建用户当前在他的分支上的签到?
如果这就是你所需要的,你不需要检查一个分支。就像git checkout HASH
你已经在做的那样使用。这保证总是反映同样的事情。
除了创建新分支的特殊情况外,checkout命令不能同时获取分支引用和提交哈希。因此,要将不同分支上的提交作为分离的头签出:
git checkout <branch_name>
git checkout <commit_hash>
以上可能不是绝对必要的,因为(从实际的角度来看)相同的提交哈希包含相同的内容,而不管它位于哪个分支上。例如,提交 1d2cad0 可以存在于多个分支上,对于分离的头,当你git checkout
提交时你在哪个分支上并不重要。
例如,如果分支foo上存在 1d2cad0 ,您可以git checkout 1d2cad0
从任何分支,您将收到类似于以下内容的消息:
HEAD 现在在 6bce656... foo
您处于一个分离的头脑中,并且会看到有关如何处理它的其他说明。对于这个用例,你真的不需要担心分支本身,除非你想要进行额外的提交,这需要 git 来跟踪祖先。