0

为什么这两个命令会产生这些结果:

  1. (master 已签出) git checkout beta git push

  2. (测试版已签出) git push origin beta

我问是因为前者在 AWS CodeCommit 中导致错误(403),而后者推送到分支就好了。此外,每当我签出 beta 版时,我会收到一条警告,指出我在 origin 分支之前提交了 +20:

“你的分支领先于 'codecommit-origin/beta' 38 次提交。”

4

2 回答 2

1

它与您的 git configpush.default设置有关。要查看您的设置运行:

$ git config -l

(请记住,您可以有 3 种不同的 git 设置:全局、系统、本地。使用--global --system或运行上述命令--local以查看为每个设置设置的值。)

如果您只是使用git push但没有指定要推送到的位置,git 将使用push.default设置规则。为避免意外行为,请始终保持详细并指定要推送到的位置,即:git push origin beta

git push.default 文档

于 2017-06-12T23:05:13.337 回答
1

注意:这个答案是针对git push一般情况的,而不是针对 AWS 的 git

git push接受您要发送代码的参数(原点),以及您从中发送代码的分支。因此,如果您在许多代码示例中看到,git push origin master将代码推送到origin您的master分支。如果输入 command ,则从本地分支git push origin beta推送到beta远程存储库的分支。是一个切换您当前正在工作的分支的命令。因此,将您的本地存储库切换到,如果您进行更改并提交它们(确保在切换分支之前提交!)它们只会在分支中更改。同样,切换到您的主分支。运行哪个分支并不重要originbetagit checkoutgit checkout betabeta branchbetagit checkout mastergit pushfrom,因为您指定要推送的分支作为第二个参数。

于 2017-06-12T22:57:09.773 回答