git 遠程分支創建與推送


本文轉載至 http://www.cnblogs.com/wangkangluo1/archive/2011/09/02/2164313.html

原文地址:http://hi.baidu.com/lingzhixu/blog/item/4a9b830bb08a329fe850cd5b.html

本地分支的創建

本地分支的來源為執行git checkout -b <branch name> 的那個分支

例如現在有兩個分支,master和b1

master 分支下有一個commit:

commit1: add test1.c

b1分支下有兩個commit:

commit2: add test2.c

commit1: add test1.c

如果在master分支下checkout,即:

git checkout master //進入master分支

git checkout -b frommaster //以master為源創建分支frommaster

git log后發現frommaster中有一個提交:

commit1: add test1.c

這說明他是從master分支為源頭創建的

如果在b1分支下checkout,即:

git checkout b1 //進入master分支

git checkout -b fromb1 //以b1為源創建分支fromb1

git log后發現fromb1中已經有兩個提交:

commit2: add test2.c

commit1: add test1.c

這說明他是從b1分支為源頭創建的

遠程分支的創建

從遠程分支檢出的本地分支,稱為跟蹤分支(tracking branch)。跟蹤分支是一種和遠程
分支有直接聯系的本地分支。在跟蹤分支里輸入git push,Git 會自行推斷應該向哪個服
務器的哪個分支推送數據。反過來,在這些分支里運行git pull 會獲取所有遠程索引,並

把它們的數據都合並到本地分支中來.

$ git push ssh://git@dev.lemote.com/rt4ls.git master // 把本地倉庫提交到遠程倉庫的master分支中

$ git remote add origin ssh://git@dev.lemote.com/rt4ls.git
$ git push origin master

這兩個操作是等價的,第二個操作的第一行的意思是添加一個標記,讓origin指向ssh://git@dev.lemote.com /rt4ls.git,也就是說你操 作origin的時候,實際上就是在操作ssh://git@dev.lemote.com/rt4ls.git。origin在這里完全可以理解為后者 的別名。

    需要說明的是,默認情況下這條語句等價於提交本地的master倉庫到遠程倉庫,並作為遠程的master分支。

我從master分支創建了一個issue5560分支,做了一些修改后,使用git push origin master提交,但是顯示的結果卻是'Everything up-to-date',發生問題的原因是git push origin master 在沒有track遠程分支的本地分支中默認提交的master分支,因為master分支默認指向了origin master 分支,這里要使用git push origin issue5560:master 就可以把issue5560推送到遠程的master分支了。

    如果想把本地的某個分支test提交到遠程倉庫,並作為遠程倉庫的master分支,或者作為另外一個名叫test的分支,那么可以這么做。

$ git push origin test:master         // 提交本地test分支作為遠程的master分支
$ git push origin test:test              // 提交本地test分支作為遠程的test分支

如果想刪除遠程的分支呢?類似於上面,如果:左邊的分支為空,那么將刪除:右邊的遠程的分支。

$ git push origin :test              // 剛提交到遠程的test將被刪除,但是本地還會保存的,不用擔心

 


免責聲明!

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



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