如果你想要把您當地的分行您呼叫file_upload_branch
(我加了下劃線這裏可讀性,注意,下面這影響到每一個出現),但把它master
遙控器上:
git push origin file_upload_branch:master # see below about -u
到push
這裏的最後一個參數被稱爲「的Refspec」,和你拼出來有兩部分:本地端標識符(通常是分支名稱)和遠程端標識符(另一個可能不同的分支名稱)。冒號:
用於分隔兩者。
如果您只使用一個名稱,而不使用冒號,那麼git會假設您希望在每一面都使用相同的名稱。 (你剛纔說的不是你想要的。)
如果你完全沒有使用refspec(並且不使用像--all
這樣的選項),git會根據各種配置變量選擇要推送的內容。如果你沒有設置它們,所有當前版本的git都使用matching
這個方法:你的git,做push
操作,詢問對方的git「你現在有哪些分支」,把結果列表和看到你有哪些地方分支匹配,並推動這些分支。
將--all
作爲(僞)參考,您的一方只是要求將您擁有的每個分支名稱都推送到遠程(同您發現的)相同的名稱。
(語法:branchname
,以refspec的形式給出,要求遠程給刪除命名的分支。你可能會想用這個遙控器上刪除file_upload_branch
。)
如果你設置了配置變量push.default
到upstream
,這改變了push
的默認動作沒有的Refspec使用的「上游」的名字當前分支。也就是說,如果你在file_upload_branch
和遠程(origin
)它的「上游」的名字是master
,平地,如果你寫
git push origin
將採取行動:
git push origin file_upload_branch:master
這是其中-u
參數進入:在file_upload_branch
成功推送到master
後,在遠程origin
,git push
將設置 file_upload_branch的「上游」爲origin/master
。你只需要每個分支做一次;設置了上游,並將push.default
設置爲upstream
,未來的推送將自動「做你想做的事」。
在GIT中版本2.0,用於remote.pushdefault
默認值將改變到simple
。如果您現在將您的--global
remote.pushdefault
設置爲simple
,則您將準備好(因此不會受此影響)此更改。或者,如果您更喜歡upstream
作爲個人默認值,您可以設置它,它仍然可以在2.0中工作。
注意remote.pushdefault
可以在兩個您的每個用戶(即,--global
)GIT中的配置設置以及在每個回購配置。無論何時設置,per-repo配置都會覆蓋全局配置。您還可以設置一個相當令人眼花繚亂的額外配置陣列,但我不會做任何這些:-):remote.origin.push
,branch.file_upload_branch.remote
和branch.file_upload_branch.pushremote
都可以影響git push
的行爲。有關完整的詳細信息,請參見git config documentation。