git push origin HEAD:branch2:
这个命令显式地指定了你要推送的本地引用(HEAD),以及远程仓库的目标引用(origin/branch2)
。
HEAD 是一个引用,指向你当前所在的本地分支的最新提交。
这个命令的意图是将当前分支的最新提交推送到远程仓库的 branch2 分支上。如果远程没有 branch2 分支,它将会被创建。
git push:
当没有指定参数时,git push 默认推送当前分支到与其建立了跟踪关系的远程分支。这个默认行为可以通过Git的 push.default 配置进行调整。
如果当前分支与远程分支之间没有建立跟踪关系,命令可能会失败,除非你配置了 push.default 为 current 或 matching,在这种情况下,它会推送当前分支到远程仓库中同名的分支。
如果当前分支已经和一个远程分支有了跟踪关系,git push 就会把当前分支的更改推送到远程跟踪分支。
总的来说,主要区别在于 git push origin HEAD:branch2 显式指定了要推送到的远程分支,而 git push 依赖于配置和跟踪关系来决定推送的目标分支。