簡介
開始過了兩遍Git的內容,第二天就已經忘記了分支(branch)的概念,開始還覺得不太用的到。然后又看了第二遍,才發現為什么大家說這個是Git里邊極其重要的一個東西。
所謂branch,就類似于樹的枝干,有一個主干,在Git里成為master,意思也很好理解;這個是必須存在的,然后你可以分出去其他的樹干(但是都不是主干)。像樹的分枝都會回到主干那里一樣,Git里的分支也會匯聚到master那里。
比方我們現在有現成的代碼,A想自己修改一下,但是不能直接改動,做法可以是copy過來修改一下,在Git里我們直接創建分支就可以了。再覺得完美了之后上傳過去,這個時候直接合并分支就可以搞定了。
分支常用命令和功能介紹
通過git branch命令可以看到現在的分支情況,*代表我們目前所在的分支
# git branch* master test
可以看到我們有兩個分支,有master還有一個test
通過git checkout test我們可以切換到test分支
#git checkout testSwitched to branch 'test'#git branch master*test
通過git checkout -b xx命令我們可以創建xx分支,-b 代表創建并直接切換到xx分支
通過git merge xx可以把xx分支合并到master分支上
完成合并之后可以刪除xx分支,使用git branch -d xx命令,需要注意的是合并的時候需要解決沖突(即內容不一致的問題)
下面通過一個完整的例子(代碼高亮不理想,湊合看吧)演示一下:
07:02:01wang@~/Documents/git >> git branch master* test07:02:11wang@~/Documents/git >> git checkout masterSwitched to branch 'master'Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits)07:02:21wang@~/Documents/git >> git branch* master test07:02:27wang@~/Documents/git >> lsreadme.txt Spoon-Knife test07:02:45wang@~/Documents/git >> cat readme.txtmaster branch`07:02:51wang@~/Documents/git >> git checkout -b test1Switched to a new branch 'test1'07:03:02wang@~/Documents/git >> git branch master test* test107:03:05wang@~/Documents/git >> lsreadme.txt Spoon-Knife test07:03:07wang@~/Documents/git >> vi readme.txt07:03:18wang@~/Documents/git >> git add readme.txt07:03:23wang@~/Documents/git >> git commit -m "branch test1"[test1 3a09722] branch test1 1 file changed, 2 insertions(+)07:03:38wang@~/Documents/git >> git checkout masterSwitched to branch 'master'Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits)07:03:53wang@~/Documents/git >> git branch* master test test107:03:56wang@~/Documents/git >> git merge test1Updating c7ac8a8..3a09722Fast-forward readme.txt | 2 ++ 1 file changed, 2 insertions(+)07:04:02wang@~/Documents/git >> cat readme.txtmaster branch`test1 branch07:04:07wang@~/Documents/git >> git branch -d test1Deleted branch test1 (was 3a09722).07:04:18wang@~/Documents/git >> git branch* master test
新聞熱點
疑難解答