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 不需要

   git push origin HEAD:refs/for/master

      

     1.git push <remote 名字> <本地分支的名字> : <遠程庫的名字>

     git push 肯定是推送
     origin : 是遠程的庫的名字
    HEAD: 是一個特別的指針,它是一個指向你正在工作的本地分支的指針,可以把它當做本地分支的別名,git這樣就可以知道你工作在哪個分支
    refs/for :意義在於我們提交代碼到服務器之后是需要經過code review 之后才能進行merge的
    refs/heads 不需要

    通過git status命令可以查看當前工作區和暫存區文件的狀態。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM