Git学习(五)分支管理

创建与合并分支

我们创建 dev 分支,然后切换到 dev 分支:

1
2
$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

1
2
3
$ git branch dev
$ git checkout dev
Switched to branch 'dev'

然后,用git branch命令查看当前分支:

1
2
3
$ git branch
* dev
master

git branch命令会列出所有分支,当前分支前面会标一个*号。

然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行内容:

1
5.创建了一个新分支

然后提交:

1
2
3
4
$ git add readme.txt
$ git commit -m "creat a new branch"
[dev a118862] creat a new branch
1 file changed, 4 insertions(+), 1 deletion(-)

现在,dev分支的工作完成,我们就可以切换回master分支:

1
2
$ git checkout master
Switched to branch 'master'

切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变:

1
2
3
4
5
6
7
8
$ cat readme.txt
1.git学习。初步

2.看看git status命令的结果

3.重复上一步的内容

4.git中的暂存区和工作区

现在,我们把dev分支的工作成果合并到master分支上:

1
2
3
4
5
$ git merge dev
Updating 08a13dd..a118862
Fast-forward
readme.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。

合并完成后,就可以放心地删除dev分支了:

1
2
$ git branch -d dev
Deleted branch dev (was a118862).

删除后,查看branch,就只剩下master分支了:

1
2
$ git branch
* master

常用分支命令

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

删除远程分支:git push origin --delete <name>

本地新建分支后提交到远程: git push origin <name>

多人协作

当你从远程仓库克隆时,实际上 Git 自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin

要查看远程库的信息,用git remote

1
2
$ git remote
origin

或者,用git remote -v显示更详细的信息:

1
2
3
$ git remote -v
origin git@github.com:Syzq/gitlearn.git (fetch)
origin git@github.com:Syzq/gitlearn.git (push)

上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。

推送分支

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git 就会把该分支推送到远程库对应的远程分支上:

1
$ git push origin master

如果要推送其他分支,比如dev,就改成:

1
$ git push origin dev
------ 本文结束 ------
0%