一文掌握git?push命令
git push命令
以上列舉的參考文獻將的非常棒,是目前我見到的寫的最完整的。
git push命令用于將本地分支的更新,推送到遠程主機。它的格式與git pull命令相仿。
git push <遠程主機名> <本地分支名>:<遠程分支名>
注意:這里的:前后是必須沒有空格的。
如果省略遠程分支名,則表示將本地分支推送與之存在"追蹤關(guān)系"的遠程分支(通常兩者同名),如果該遠程分支不存在,則會被新建。
git push origin master
上面命令表示,將本地的master分支推送到origin主機的master分支。如果后者不存在,則會被新建。
如果省略本地分支名,則表示刪除指定的遠程分支,因為這等同于推送一個空的本地分支到遠程分支。
#慎用!刪除遠程倉庫的分支 git push origin :master # 等同于 git push origin --delete master
上面命令表示刪除origin主機的master分支。
如果當(dāng)前分支與遠程分支之間存在追蹤關(guān)系,則本地分支和遠程分支都可以省略。
git push origin
上面命令表示,將當(dāng)前分支推送到origin主機的對應(yīng)分支。
如果當(dāng)前分支只有一個追蹤分支,那么主機名都可以省略。
git push
如果當(dāng)前分支與多個主機存在追蹤關(guān)系,則可以使用-u選項指定一個默認主機,這樣后面就可以不加任何參數(shù)使用git push。
git push -u origin master
上面命令將本地的master分支推送到origin主機,同時指定origin為默認主機,后面就可以不加任何參數(shù)使用git push了。
參考文獻:http://www.cnblogs.com/dyh-air/p/9257237.html
PS:git push 命令詳解
對 git push 命令一直都是處于一知半解的狀態(tài),就知道它是將本地的更改推送到遠程別名里面,
直到最近通過一寫練習(xí)才更加清晰了一點
git push 顧名思義就是將本地的更新推送到遠程別名
它有幾個常見的選項,接下來一一對它們講解
假如我們現(xiàn)在只有一個遠程別名(remote): origin
1. 無參數(shù),直接 git push
git push 這種情況 git 會檢查當(dāng)前所在的分支有沒有設(shè)置 upstream branch, 也就是該分支對應(yīng)的上游分支,也就是對應(yīng)的遠程別名(remote)里面的分支。
- 如果有,則直接推送當(dāng)前分支的歷史版本到遠程別名里面對應(yīng)的分支。此時 git 只推送該分支的更新,不考慮其他分支。
- 如果沒有(新建立的分支),則會直接報錯:The current branch d has no upstream branch. 此時只能參考以下的情況做處理
2. git push -u origin 當(dāng)前分支名 or git push --set-upstream origin abc
新建立的分支第一次直接 push 時會報錯,是我們還沒有設(shè)置當(dāng)前分支對應(yīng)的遠程別名里面的分支,可以使用的命令 git push --set-upstream origin abc,這樣就可以將本地的 abc 分支(假設(shè)本地分支叫做abc)推送到遠程別名里面的 abc 分支,如果遠程別名里面沒有 abc 這個分支,則會自動建立一個 abc 分支并接收推送的內(nèi)容;并且為當(dāng)前的分支設(shè)置了 upstream branch, 以后再推送該分支就可以直接執(zhí)行 git push 了(當(dāng)然也只是push當(dāng)前所在的本地分支,不會處理其他本地分支)。如果以后想要修改 upstream branch, 可以使用 git branch --set-upstream-to origin/abc,設(shè)置好了以后該分支也可以直接執(zhí)行 git push 向遠程別名的響應(yīng)分支推送了,但是修改 upstream branch 有個問題,就是比如現(xiàn)在是 abc 分支,一般來講肯定也是推送到遠程別名里面的 abc 分支,本地分支和遠程別名的分支一一對應(yīng),修改之后比如 git branch --set-upstream-to origin/efg 后,以后再 git push 時 git 就會報錯:The upstream branch of your current branch does not match the name of your current branch. 就是遠程的分支名和當(dāng)前的分支名不匹配,并且提示如果推送到你想要的分支。
3. git push --all
直接推送所有本地分支,那些沒有設(shè)置 upstream branch 的會自動創(chuàng)建響應(yīng)的遠程別名分支,然后接收推送的內(nèi)容,但是沒有為本地分支設(shè)置遠程別名的分支
到此這篇關(guān)于git push命令詳解的文章就介紹到這了,更多相關(guān)git push命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

