我希望在我的部署中构建检查用户分支和他正在使用的提交ID的功能。
过去我们只在部署框中签出了master。我做了这个,似乎工作。
git checkout HASH
但是现在我希望能够在我们的登台框上测试分支和哈希。我怎么做?我想如果我重置为HASH,它会推断分支,但这不起作用。我以为我可以做一个checkout branch HASH
。
如何在我们的登台服务器上重新创建用户当前签到的分支?
答案 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来跟踪祖先。