Git的版本和分支管理

2021-07-04 17:04:46 字數 2718 閱讀 9160

[1]

[2]

[3]

本地的分支管理

建立分支,你可以使用

git branch dev

這就建立了乙個dev(development之意),更好的,選擇使用下面的方法建立兩個分支——dev,建立後會自動切換到新建立的分支,

git checkout -b dev

要切回master分支怎麼辦?使用

git checkout master

當然你也可以使用

git checkout dev

再次切換到dev分支。

好了,現在有兩個分支:master和dev了。比如切來切去,突然暫停手下的活要先擼一把,擼完回過頭不知道現在在哪個分支了,怎麼辦?

git branch

git-branch

搞定,git branch可以檢視當前已有的分支資訊,並在將當前所在分支高亮,當前分支前還有個*號。

某天要除錯某個新演算法,又不能保證能調好,又怕打亂了原有的程式,怎麼辦?建乙個新分支:

git checkout -b debug

在debug分支中慢慢玩,master分支和dev分支毫不受影響。這時就有兩種情況:

* 悲劇的最後還是沒調出來,我又有強迫症,debug分支一直放在那總是不爽,刪了

git branch -d debug

* 恭喜,演算法除錯成功,我要合併到master中

git checkout master   // 切換到master

git merge debug       // 合併debug到master

這時如果你很幸運,直接合併成功。悲傷的事情總是時有發生,「合併發生衝突」是常有的事,因此一旦出現類似下面的提示

conflict (content): merge conflict in ...

automatic merge failed; fix conflicts and then commit the result.

就得自己動手解決衝突了,git會用

<<<<<<>>>>>>debug

這樣的格式提醒你,只要修改保留實際需要的內容後即可解決衝突,解決衝突後就可以執行git commit。

好了,我們合併了master和debug,做it的人總會偷個腥,想看看git是怎麼記錄合併的,沒問題,

git log --graph --pretty=oneline --abbrev-commit

就可以直接看到分支合併的過程。我這有個大點的工程合併效果的例子,

example

最後,反正debug我玩完了,刪除debug分支

git branch -d debug

遠端的分支管理

我們所有的開發工作都在dev上進行,一旦有了大的突破,則合併到master。

* 既然有了dev分支,我也要把它推送到github上

如果不在dev,切換到dev,

git branch

git checkout dev

還記得我們之前推送master分支到遠端origin嗎?

git push -u origin master

推送dev也是一樣的,只要指定分支名為dev就可以了,

git push -u origin dev

* 同學a開頭寫了個專案,老闆讓我也跟著做,同學a說,你到github上圖clone我的**吧

git clone [email protected]:....

這是,你用git branch看看,這只是clone了master分支,dev呢?這可是費勁苦心,要在同學a的dev分支上開發,就必須建立遠端的dev分支到本地

git checkout -b dev origin/dev

再用git branch看看?有了吧。

* 在同學a的基礎上我又添了新功能,老闆催著,趕緊提交

git checkout dev

git pull origin dev

* 老闆某天突然和我說:你看同學a,又修改了好多bug,還不下下來學學

git pull origin dev  

可能出現衝突,解決後才能進行下一次的提交。

極少的場合,要不就是老闆的老婆月經亂了,要不就是。。。哎,不說了,非要刪除遠端dev分支,也是有辦法的,

git push oringin :dev

本地tag管理

哇,第乙個里程碑式的突破,有木有,這時你可小小的慶幸一下,打個標籤(tag),表示這是個可靠的可發布版本,

git tag -a v1.0 -m "第乙個里程碑的突破"

當然,注釋別向上面一樣("第乙個里程碑的突破")寫得那麼沒有營養。起個好名字很重要。預設的標籤將打在最新的commit上。

檢視打了哪些標籤使用

git tag

檢視某個標籤的資訊用

git show v1.0

好了,好馬也有失前蹄的時候,標籤打錯也是正常的,

git tag -d v1.0

果斷刪了v1.0標籤。

遠端tag管理

我想要把v1.0推送到遠端,

git push origin v1.0

把所有的標籤一次推送到遠端更爽,

git push origin --tags

刪除遠端的標籤,你可以到github上刪除,也可以,

* 先刪除本地的

git tag -d v1.0

* 刪除遠端的

git push origin :refs/tags/v1.0

Git的版本和分支管理

本地的分支管理 遠端的分支管理 本地tag管理 遠端tag管理 結尾及參考 由於已經對git使用比較熟悉了,此篇關於git分支和版本的的管理將不會詳細記錄每乙個細節。如果你還不熟悉git,請先參看 1 2 3 建立分支,你可以使用 git branch dev這就建立了乙個dev developme...

Git的版本和分支管理

由於已經對git使用比較熟悉了,此篇關於git分支和版本的的管理將不會詳細記錄每乙個細節。如果你還不熟悉git,請先參看 1 2 3 建立分支,你可以使用 git branch dev這就建立了乙個dev development之意 更好的,選擇使用下面的方法建立兩個分支 dev,建立後會自動切換到...

Git 分支管理和版本控制

git 分支管理 幾乎每一種版本控制系統都以某種形式支援分支。使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。建立和切換分支命令git branch 後面不跟引數時,表示檢視當前所有的分支 git branch branchname 建立分支 git checkout br...