git push命令用於將本地分支的更新,推送到遠端主機。它的格式與git pull命令相仿。
$ git push 《遠端主機名》 《本地分支名》:《遠端分支名》
注意,分支推送順序的寫法是《**地》:《目的地》,所以git pull是《遠端分支》:《本地分支》,而git push是《本地分支》:《遠端分支》。
如果省略遠端分支名,則表示將本地分支推送與之存在」追蹤關係」的遠端分支(通常兩者同名),如果該遠端分支不存在,則會被新建。
$ git push origin master
上面命令表示,將本地的master分支推送到origin主機的master分支。如果後者不存在,則會被新建。
如果省略本地分支名,則表示刪除指定的遠端分支,因為這等同於推送乙個空的本地分支到遠端分支。
$ git push origin :master
# 等同於
$ git push origin --delete master
上面命令表示刪除origin主機的master分支。
如果當前分支與遠端分支之間存在追蹤關係,則本地分支和遠端分支都可以省略。
$ git push origin
上面命令表示,將當前分支推送到origin主機的對應分支。
如果當前分支只有乙個追蹤分支,那麼主機名都可以省略。
$ git push
如果當前分支與多個主機存在追蹤關係,則可以使用-u選項指定乙個預設主機,這樣後面就可以不加任何引數使用git push。
$ git push -u origin master
上面命令將本地的master分支推送到origin主機,同時指定origin為預設主機,後面就可以不加任何引數使用git push了。
不帶任何引數的git push,預設只推送當前分支,這叫做******方式。此外,還有一種matching方式,會推送所有有對應的遠端分支的本地分支。git 2.0版本之前,預設採用matching方法,現在改為預設採用******方式。如果要修改這個設定,可以採用git config命令。
$ git config --global push.default matching
# 或者
$ git config --global push.default ******
還有一種情況,就是不管是否存在對應的遠端分支,將本地的所有分支都推送到遠端主機,這時需要使用–all選項。
$ git push --all origin
上面命令表示,將所有本地分支都推送到origin主機。
如果遠端主機的版本比本地版本更新,推送時git會報錯,要求先在本地做git pull合併差異,然後再推送到遠端主機。這時,如果你一定要推送,可以使用–force選項。
$ git push --force origin
上面命令使用–force選項,結果導致在遠端主機產生乙個」非直進式」的合併(non-fast-forward merge)。除非你很確定要這樣做,否則應該盡量避免使用–force選項。
最後,git push不會推送標籤(tag),除非使用–tags選項。
$ git push origin --tags
有時候當遠端***分支被刪掉了後,用git branch -a 你還可以看到本地還有remote/origin/***這個分支,那麼你可以使用git fetch -p 這個命令可以幫你同步最新的遠端分支,並刪掉本地被刪了的遠端分支
Git 常用命令 git push命令
git push的一般形式為git push 遠端主機名 本地分支名 遠端分支名 例如 git push origin master refs for master 即是將本地的master分支推送到遠端主機origin上的對應master分支。origin 是遠端主機名,第乙個master是本地分...
Git push 常用命令
這個是push的完整寫法,將本地分支上傳到遠端分支,例如 git push origin dev dev如果省略了 遠端主機分支名 即 git push dev則git會push到遠端分支的同名本地分支,即和 git push dev dev等價。如果遠端分支dev不存在則會建立dev分支。如果省略...
Git push 的常用命令
在使用git commit命令將修改從暫存區提交到本地版本庫後,只剩下最後一步將本地版本庫的分支推送到遠端伺服器上對應的分支了,如果不清楚版本庫的構成,可以檢視我的另一篇,git 倉庫的基本結構。git push的一般形式為 git push 遠端主機名 本地分支名 遠端分支名 例如 git pus...