Git pushgit
在使用git commit命令將修改從暫存區提交到本地版本庫後,只剩下最後一步將本地版本庫的分支推送到遠程服務器上對應的分支了,若是不清楚版本庫的構成,能夠查看個人另外一篇,git 倉庫的基本結構。服務器
git push的通常形式爲 git push <遠程主機名> <本地分支名> <遠程分支名> ,例如 git push origin master:refs/for/master ,便是將本地的master分支推送到遠程主機origin上的對應master分支, origin 是遠程主機名,code
第一個master是本地分支名,第二個master是遠程分支名。開發
1.1 git push origin masterit
若是遠程分支被省略,如上則表示將本地分支推送到與之存在追蹤關係的遠程分支(一般二者同名),若是該遠程分支不存在,則會被新建ast
1.2 git push origin :refs/for/master 擴展
若是省略本地分支名,則表示刪除指定的遠程分支,由於這等同於推送一個空的本地分支到遠程分支,等同於 git push origin --delete master配置
1.3 git push originim
若是當前分支與遠程分支存在追蹤關係,則本地分支和遠程分支均可以省略,將當前分支推送到origin主機的對應分支 推送
1.4 git push
若是當前分支只有一個遠程分支,那麼主機名均可以省略,形如 git push,可使用git branch -r ,查看遠程的分支名
1.5 git push 的其餘命令
這幾個常見的用法已足以知足咱們平常開發的使用了,還有幾個擴展的用法,以下:
(1) git push -u origin master 若是當前分支與多個主機存在追蹤關係,則可使用 -u 參數指定一個默認主機,這樣後面就能夠不加任何參數使用git push,
不帶任何參數的git push,默認只推送當前分支,這叫作simple方式,還有一種matching方式,會推送全部有對應的遠程分支的本地分支, Git 2.0以前默認使用matching,如今改成simple方式
若是想更改設置,可使用git config命令。git config --global push.default matching OR git config --global push.default simple;可使用git config -l 查看配置
(2) git push --all origin 當遇到這種狀況就是無論是否存在對應的遠程分支,將本地的全部分支都推送到遠程主機,這時須要 -all 選項
(3) git push --force origin git push的時候須要本地先git pull更新到跟服務器版本一致,若是本地版本庫比遠程服務器上的低,那麼通常會提示你git pull更新,若是必定要提交,那麼可使用這個命令。
(4) git push origin --tags //git push 的時候不會推送分支,若是必定要推送標籤的話那麼可使用這個命令
1.6 關於 refs/for
// refs/for 的意義在於咱們提交代碼到服務器以後是須要通過code review 以後才能進行merge的,而refs/heads 不須要