實用工具 | git 常用命令整理

遠程倉庫管理

檢出倉庫:$ 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章