git分支操作
前言:使用指令進(jìn)行的git操作的,請看看;另外推薦git學(xué)習(xí)網(wǎng)站: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
基本概念
- master:主分支,也是指針指向最新的一次提交;
- head:指向當(dāng)前分支的指針
當(dāng)我們創(chuàng)建新的分支,git就會新建一個指針(例如:dev),指向master相同的提交,再把head指向dev;就表示在dev分支上了
git指令
創(chuàng)建并切換分支
$ git checkout -b dev
該指令相當(dāng)于
$ git branch dev // 創(chuàng)建分支
$ git checkout dev // 切換分支
查看分支
git branch
刪除分支
git branch -d dev
對于某個分支已經(jīng)提交了,但是沒有和主分支master合并時,想要刪除 (用大寫D
),這種場景會在某個新功能開發(fā)到一般時,突然廢棄不開發(fā)了
git branch -D dev
合并分支
git merge dev // 合并當(dāng)前分支和dev分支
git 遠(yuǎn)程分支操作
抓取遠(yuǎn)程的分支關(guān)聯(lián)到本地
git checkout -b dev origin/dev
本地已經(jīng)有分支 需要與遠(yuǎn)程關(guān)聯(lián)
git branch --set-upstream dev origin/dev
git解決沖突
有了分支在合并的時候就難免會有沖突
遇到?jīng)_突:
先打開文件修改后 再次add commit文件
git diff
: 查看的沖突
git保存?zhèn)}庫現(xiàn)場 與恢復(fù)倉庫現(xiàn)場
正在dev分支上干活,突然有bug要解決,但是dev分支的開發(fā)還沒干完,不想提交;
這是用:
git stash
: 把工作現(xiàn)場儲存起來
等到你創(chuàng)建了新分支去解決bug,bug解決完了與master合并了,在回到dev分支上時;繼續(xù)工作。
git stash list
:產(chǎn)看存儲起來的分支
工作現(xiàn)場還在,Git把stash內(nèi)容存在某個地方了,但是需要恢復(fù)一下,有兩個辦法:
一是用git stash apply
恢復(fù),但是恢復(fù)后,stash內(nèi)容并不刪除,你需要用git stash drop
來刪除;
另一種方式是用git stash pop
,恢復(fù)的同時把stash內(nèi)容也刪了:
git把本地的分支推送到遠(yuǎn)程倉庫
默認(rèn)情況是把本地的master(主分支)推送到遠(yuǎn)程倉庫的origin分支;如果開發(fā)時新建了分支。
比如創(chuàng)建了dev分支,需要推送dev分支時,就用如下指令
git push origin dev
其實(shí)默認(rèn)的push相當(dāng)于
git push origin master
git遠(yuǎn)程分支的相關(guān)操作
查看本地倉庫的分支
git branch
查看本地和遠(yuǎn)程的所有分支
git branch -a
刪除一個本地的分支
git branch -d branch-name
刪除一個遠(yuǎn)程倉庫的分支
git push origin :branch-name
冒號前面的空格不能少,原理是把一個空分支push到server上,相當(dāng)于刪除該分支。