为什么这两个命令会产生这些结果:
(主人签出) git checkout beta git push
(已检出测试版) git push origin beta
我问,因为前者在AWS CodeCommit中导致错误(403),后者推送到分支就好了。此外,每当我结帐时,我都会收到警告,即我在原点分支前提交+20提交:
“你的分支在38次提交之前领先'codecommit-origin / beta'。”
答案 0 :(得分:1)
注意:这个答案一般适用于git push
,而不适用于使用AWS的git
git push
接收您要发送代码(origin)的参数,以及您发送代码的分支。因此,如果您在许多代码示例中看到,git push origin master
会将代码从origin
分支推送到master
。如果输入命令git push origin beta
,则从本地beta
分支推送到远程origin
存储库的beta
分支。 git checkout
是一个用于切换当前正在使用的分支的命令。因此,git checkout beta
将本地存储库切换到beta branch
,如果进行更改并提交它们(请确保提交)在切换分支之前!)它们只会在beta
分支中发生变化。同样,git checkout master
切换到您的主分支。您运行git push
的分支无关紧要,因为您指定要作为第二个参数推送哪个分支。
答案 1 :(得分:1)
它与您的git config push.default
设置有关。要查看您的设置:
$ git config -l
(请记住,您可以使用3种不同的git设置:global,system,local。使用--global
--system
或--local
运行上述命令,查看为每个设置设置的值。)
如果您只是使用git push
但未指定要推送的 where ,则git将使用push.default
设置的规则。为避免意外行为,请始终详细并指定要推送到的位置,即:git push origin beta