原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309385
1.分支又是神马?
我为什么说又是。。。
分支就是一个我们能通过它创建出独立代码副本的东东。建立一个git仓库时,它会默认帮我们创建一个主分支,叫做master,之前所有的介绍我们都是在mater上面进行操作的。
这是一个最简单的分支模型,本文也基于此模型。每个点代表一个版本,master代表默认主分支,而branch代表新建的分支,HEAD可以认为是一个移动的指针,它指向谁,谁就是当前版本。
2.显示分支
通过《git branch》可以显示分支,前面带*号的表示当前所在的分支。
- #显示分支
- $ git branch
- * master
3.创建分支
通过《git brach 分支名》可以创建一个新的分支。
4.切换分支
- #切换到br分支
- $ git checkout br
- Switched to branch 'br'
5.修改分支内容并提交
- #修改br分支中的Jackydata01
- $ echo "Im in br now" > Jackydata01
-
- #提交br分支中的修改
- $ git commit -a -m "modify in br"
- [br 9ad62b7] modify in br
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
- #显示br中Jackydata01内容,成功修改
- $ cat jackydata01
- Im in br now
6.返回主分支,确认修改
发现主分支master的内容并无修改,在分支中修改提交内容并不会影响其他分支。
- #切换到master
- $ git checkout master
- Switched to branch 'master'
-
- #显示br中Jackydata01内容,无修改
- $ cat jackydata01
- Hi Jackygit2
7.推送分支到远程仓库
默认情况下,git只会推送已匹配的分支,所以如果新建分支,需要手动推送到远程仓库。我们这里推送到github。
- #推送br到github的br上,如果不存在则新建,存在则更新
- $ git push git_github br:br
- Counting objects: 5, done.
- Delta compression using up to 2 threads.
- Compressing objects: 100% (2/2), done.
- Writing objects: 100% (3/3), 265 bytes | 0 bytes/s, done.
- Total 3 (delta 1), reused 0 (delta 0)
- To [email protected]:fusijie/JackyGit.git
- * [new branch] br -> br
一旦这个分支被推送到远程仓库,那以后直接《git push 目标》就可以把所有分支都推送上去了。
8.本地合并分支
使用git merge 分支名来合并分支,不过前提是要先切换到master上,如果在br上合并是没用的。
- #合并br到主分支上
- $ git merge br
- Updating 6937dbd..9ad62b7
- Fast-forward
- Jackydata01 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
9.合并本地分支到远程分支
合并本地的br分支到远程仓库的master分支。
- #把本地的br分支合并到远程仓库的master中
- $ git push git_github br:master
- Total 0 (delta 0), reused 0 (delta 0)
- To [email protected]:fusijie/JackyGit.git
- 61a92ec..be39e3f br -> master
10.删除分支
删除分支使用《git branch -d 分支名》来删除,如果分支被修改提交过但是没有被合并,那需要使用《git branch -D 分支名》来删除。
- #删除br分支
- $ git branch -d br
- Deleted branch br (was 9ad62b7).
-
- #确认当前分支
- $ git branch
- * master
11.删除远程分支
- #删除远程br分支
- $ git push git_github :br
- To [email protected]:fusijie/JackyGit.git
- - [deleted] br
12.显示远程分支
可以使用-a显示所有分支或-r参数来显示远程分支
- #显示远程分支
- $ git branch -a
- * master
- remotes/git_github/master
- testremote/maste
13.克隆远程分支到本地
《git checkout -b 分支名》表示本地创建分支并切换到该分支。
- $在本地新建br分支,并把远程分支br克隆到本地br
- $ git checkout -b br git_github/br
- Branch br set up to track remote branch br from git_github.
- Switched to a new branch 'br'