遠程倉庫管理
檢出倉庫:$ git clone git://github.com/jquery/jquery.git
查看遠程倉庫:$ git remote -v
添加遠程倉庫:$ git remote add name
url
刪除遠程倉庫:$ git remote rm name
修改遠程倉庫:$ git remote set-url —push name
newUrl
拉取遠程倉庫:$ git pull remoteName
localBranchName
推送遠程倉庫:$ git push remoteName
localBranchName
分支管理
創建分支、切換分支
創建dev
分支,然後切換到dev
分支:
$ git checkout -b dev
Switched to a new branch 'dev'
git checkout
命令加上-b
參數表示創建並切換,相當於以下兩條命令:
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
然後,用git branch
命令查看當前分支:
$ git branch
* dev
master
git branch
命令會列出所有分支,當前分支前面會標一個*
號。
git branch -r
可以查看遠程分支
合併分支
把dev
分支的工作成果合併到master
分支上
$ git checkout master
Switched to branch 'master'
$ git merge dev
Updating d17efd8..fec145a
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
刪除分支
$ git branch -d dev
Deleted branch dev (was fec145a).
創建遠程分支(本地分支push到遠程)
$ git push origin [name]
刪除遠程分支
$ git push origin :heads/[name]
我從master分支創建了一個issue5560分支,做了一些修改後,使用git push origin master提交,但是顯示的結果卻是’Everything up-to-date’,發生問題的原因是git push origin master 在沒有track遠程分支的本地分支中默認提交的master分支,因爲master分支默認指向了origin master 分支,這裏要使用git pushorigin issue5560:master 就可以把issue5560推送到遠程的master分支了。
如果想把本地的某個分支test提交到遠程倉庫,並作爲遠程倉庫的master分支,或者作爲另外一個名叫test的分支,那麼可以這麼做。
$ git push origin test:master // 提交本地test分支作爲遠程的master分支 //好像只寫這一句,遠程的github就會自動創建一個test分支
$ git push origin test:test // 提交本地test分支作爲遠程的test分支
如果想刪除遠程的分支呢?類似於上面,如果:左邊的分支爲空,那麼將刪除:右邊的遠程的分支。
$ git push origin :test // 剛提交到遠程的test將被刪除,但是本地還會保存的,不用擔心
追蹤分支
在Git中‘追蹤分支’是用與聯繫本地分支和遠程分支的. 如果你在’追蹤分支’(Tracking Branches)上執行推送(push)或拉取(pull)時, 它會自動推送(push)或拉取(pull)到關聯的遠程分支上.
如果你經常要從遠程倉庫里拉取(pull)分支到本地,並且不想很麻煩的使用"git pull "這種格式; 那麼就應當使用‘追蹤分支’(Tracking Branches).
‘git clone‘命令會自動在本地建立一個’master’分支,它是’origin/master’的‘追蹤分支’. 而’origin/master’就是被克隆(clone)倉庫的’master’分支.
譯者注: origin一般是指原始倉庫地址的別名.
你可以在使用’git branch’命令時加上’–track’參數, 來手動創建一個’追蹤分支’.
git checkout -b dev-track --track origin/master
當你運行下命令時:
$ git pull dev-track
它會自動從‘origin’抓取(fetch)內容,再把遠程的’origin/experimental’分支合併進(merge)本地的’experimental’分支.
當要把修改推送(push)到origin時, 它會將你本地的’experimental’分支中的修改推送到origin的‘experimental’分支裏, 而無需指定它(origin).
可以通過git branch -vv
來查看分支是否爲追蹤分支
$ git branch -vv
dev 2976dcf first commit
* dev-track 2976dcf [origin/master] first commit
master 2976dcf [origin/master] first commit