2017-06-12 105 views
0

爲什麼這兩個命令產生這些結果:爲什麼git push的工作方式不同於git push origin <branch>?

  1. (主簽出) git的結帳的β GIT中推

  2. (測試版已簽出) GIT中推原點的β

我問,因爲前者導致在AWS CodeCommit錯誤(403),而後者推到分支就好了。另外,我得到一個警告,每當我結帳公測,我是+20犯提前起源分支:

「你的分支是提前‘codecommit原產/測試’的38個提交」

+0

這個問題的原因是因爲當我檢查了主,遠程URL是正確的,但當我試用beta版時,遠程URL改爲URL的http版本,而不是正確的ssh版本。 更正URL(GIT遠程設置網址--push )解決了這個問題,並導致我相信,遙控器的URL取決於哪個分支簽出,使得第一場景和第二場景不同。 – SimonStiph

回答

0

注:這個答案是一般git push而不是混帳與AWS

git push發生在作爲要發送的代碼(起源),以及您是從發送代碼分支參數。因此,如果您在許多代碼示例中看到,git push origin master會將您的master分支中的代碼推送到origin。如果輸入命令git push origin beta,則可以從本地beta分支推送到遠程origin存儲庫的beta分支。 git checkout是切換您目前正在使用的分支的命令。因此,git checkout beta切換你的本地庫到beta branch,如果你進行修改和提交它們(確保切換分支之前提交!),他們只會在beta改變科。同樣,git checkout master切換到您的主分支。由於您指定將哪個分支推送爲第二個參數,因此您從哪個分支運行git push並不重要。

0

它與你的混帳配置push.default設置做。要查看您的設置運行:

$ git config -l

(記住,你可以有3個不同的git的設置:全球性的,系統的,當地有兩種--global--system--local運行上面的命令可以查看每個設置的值。)

如果只是用git push,但不指定其中你是推到,git會利用規則爲push.default設置。爲了避免意外的行爲,總是冗長,並指定要推到,即:git push origin beta

git push.default documentation

相關問題