git實用知識梳理(二)分支管理
續上篇git實用知識梳理(一)最基礎的知識
,這裡開始講講分支管理的故事。
分支管理策略
master分支是穩定的,僅僅用來發布新版本,而不是幹活用的。
dev分支是用來幹活的,是不穩定的版本。等需要釋出版本的時候,再把dev分支合併到master。
團隊中的每個人都建立自己的分支,然後常常往dev分支合併。
合併分支,加上-no-ff引數,是用普通模式合併,能看出來曾經做過合併。
fast forward合併則看不出來曾經做過合併。
建立、合併分支
在git裡,是使用指標來指向不同的分支,而HEAD則指向當前分支。所以合併兩個分支的時候,只要修改指標指向即可。建立分支是增加指標,刪除分支則是刪除指標。
git鼓勵用分支完成某個任務,合併後再刪掉分支。因為建立、合併、刪除分支都非常快,而且在分支上工作更安全。
檢視分支:git branch
建立分支:git branch name
切換分支:git checkout name
建立+切換分支:git checkout -b name
合併某分支到當前分支:git merge name
刪除分支:git branch -d name
通常,合併分支時,如果可能,Git會用“Fast forward”模式,但這種模式下,刪除分支後,會丟掉分支資訊。
如果要強制禁用“Fast forward”模式,可以使用--no-ff
引數,表示禁用“Fast forward”。
解決衝突
存在衝突時,使用$ git status
檢視衝突的檔案。
Git會用<<<<<<<,=======,>>>>>>>標記出不同分支的內容。我們檢視衝突部分,手工修改解決之後,再提交就可以了。
分支策略
master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活。
dev分支是不穩定的,需要版本釋出時,再把dev分支合併到master上,在master分支釋出對應版本。
團隊合作的時候,每個人都有自己的分支,然後把自己的分支經常的往dev分支合併。
團隊合作時需要善用git的分支功能。
bug分支:每個bug都可以通過一個新的臨時分支來修復,修復後,合併分支,然後將臨時分支刪除。
但是,如果需要修改bug的時候,當前正在dev上幹活,還沒有提交,怎麼辦?此時可以使用git stash
把當前工作現場“儲藏”起來,等以後恢復現場後繼續工作。
用git stash list
命令看剛才的工作現場,恢復的話有兩種方式:
一是用git stash apply
恢復,但是恢復後,stash內容並不刪除,你需要用git stash drop
來刪除;
另一種方式是用git stash pop
,恢復的同時把stash內容也刪了。
相關文章
- git 知識之分支合併Git
- Git 分支管理Git
- git-分支管理Git
- Git——分支管理(2)Git
- Mysql知識梳理MySql
- Python知識梳理Python
- web知識梳理Web
- webpack 知識梳理Web
- JavaWeb知識梳理JavaWeb
- Redux 知識點梳理和實踐Redux
- Git 分支管理規範Git
- JS開發中函式知識點梳理(二)JS函式
- react 知識梳理(一)React
- git分支基本管理規範Git
- git分支管理及git commit message規範GitMIT
- react 知識梳理(二):手寫一個自己的 reduxReactRedux
- Git branch分支實質Git
- GIT分支管理規劃說明Git
- git 基本操作|分支管理|gitlib使用Git
- Git教程十九:分支管理之RebaseGit
- Git分支管理,運維知道嗎?Git運維
- js基礎知識梳理JS
- MongoDB基礎知識梳理MongoDB
- kafka基礎知識梳理Kafka
- Git(12)-- Git 分支 - 分支簡介Git
- 信管知識梳理(三)軟體工程相關知識軟體工程
- git 入門教程之分支管理Git
- 一種新的Git分支管理策略Git
- 【Git】程式碼許可權&分支管理Git
- 【第七篇】- Git 分支管理Git
- git分支管理--rebase&merge詳解Git
- JS函式知識點梳理JS函式
- JVM面試知識點梳理JVM面試
- Flex 佈局知識點梳理Flex
- 【整理】JVM知識點大梳理JVM
- Python基礎知識點梳理Python
- Java基礎知識點梳理Java
- git基本知識Git