“git push origin HEAD:clean_up”和不带HEAD参数的区别是什么?

3
什么是两者之间的区别?
git push origin HEAD:clean_up

并且

git push origin clean_up

HEAD 实际上是什么意思?


这个问题已经在这里得到了回答: https://dev59.com/zHE95IYBdhLWcg3wdtmj - Robbenu
请仔细审查以下给出的答案。 - Tim Biegeleisen
1个回答

2

HEAD指向当前分支的最后一次提交。因此,如果当前分支是clean_up,那么我期望以下两个命令会执行相同的操作:

git push origin HEAD:clean_up
git push origin clean_up

我可以想到一种情况,当您使用git push时,可能希望使用其他内容而不是HEAD。假设您在分离的HEAD状态下检出了某个分支branch。您进行了几次提交,现在您已经决定将其作为自己的新分支推送到存储库。但是,您希望从之前的一个提交中推出该分支,而不是最后一个提交。 在这种情况下,您需要执行以下步骤:

git checkout <SHA-1 of `branch` you want>
# make a few commits
git push origin HEAD~1:new_branch

这将把分支推送到远程,包括您之前所做的上一个提交。

2
两个语句的主要区别在于 git push origin HEAD:clean_up 将当前本地分支(任意命名)推送到远程仓库上的 clean_up 分支,而 git push origin clean_up 则将本地名为 clean_up 的分支推送到远程仓库上同名的分支。 - joran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接