Git push 的常用命令
文章目錄
Git push 的常用命令
在使用git commit命令將修改從暫存區提交到本地版本庫後,只剩下最後一步將本地版本庫的分支推送到遠端伺服器上對應的分支了,如果不清楚版本庫的構成,可以檢視我的另一篇,git 倉庫的基本結構。
git push的一般形式為 git push <遠端主機名> <本地分支名> <遠端分支名> ,例如 git push origin master:refs/for/master ,即是將本地的master分支推送到遠端主機origin上的對應master分支, origin 是遠端主機名,
第一個master是本地分支名,第二個master是遠端分支名。
1.1 git push origin master
如果遠端分支被省略,如上則表示將本地分支推送到與之存在追蹤關係的遠端分支(通常兩者同名),如果該遠端分支不存在,則會被新建
1.2 git push origin :refs/for/master
如果省略本地分支名,則表示刪除指定的遠端分支,因為這等同於推送一個空的本地分支到遠端分支,等同於 git push origin --delete master
1.3 git push origin
如果當前分支與遠端分支存在追蹤關係,則本地分支和遠端分支都可以省略,將當前分支推送到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 不需要