git 分支管理
Git 分支管理
几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以开发主线上分离出来,然后在不影响主线的同时继续工作。
有人把Git 的分支管理模型称为 必杀技特性 ,而正是因为它,将 Git 从版本控制系统家族里区分出来。
创建分支命令:
git branch (branchname)
切换分支命令:
git checkout (branchname)
当你切换分支的时候,Git会用该分支的最后提交的快照替换你的工作目录的内容,所以多个分支不需要多目录。
合并分支命令:
git merge
你可以多次合并到统一分支,也可以选择在合并之后直接删除被并入的分支。
Git 分支管理
列出分支
列出分支基本命令:
git branch
没有参数时,git branch 会列出你在本地的分支。
$ git branch
* master
此例的意思就是,我们有一个叫做 master 的分支,并且该分支是当前分支。
当你执行git inti 的时候,缺省情况下Git 就会为你创建 master 分支,
如果我们需要手动创建一个分支。执行 git branch (branchname)即可。
$ git branch testing
$ git branch
* master
testing
现在我们可以看到 ,有了一个新分支 testing.
当你以此方法在上次提交更新之后创建了新分支,如果后来又有更新提交,然后又切换到了 testing 分支,Git 将还原你的工作目录到你创建分支时候的样子
接下来我们将演示如何切换分支,我们用 git checkout(branch) 切换到我们要修改的分支。
.....
我们也可以使用 git checkout -b(branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。
$ git checkout -b newtest
$ git rm test2.txt
$ git commit -am 'removed test2.txt'
git checkout msater
删除分支
删除分支命令:
git branch -d (branchname)
例如我们要删除 testing 分支:
$ git branch
$ git branch -d testing
$ git branch
分至合并
一旦某分支有了独立内容,你终究希望将它合并回到你的主分支。你可以使用以下命令将任何分支合并到当前分支中去:
git merge
$ git branch
$ git merge newtest
合并冲突
合并并不仅仅是简单的文件添加 移除的操作 Git 也会合并修改。
$ git branch
* master
$ cat test.txt
runoob.com
首选 ,我们创建一个叫做 change_site 的分支,切换过去, 我们将内容改为 www.runoob.com.
$ git checkout -b chenge_site
$ vim test.txt
$ head -l test.txt
www.runoob.com
$ git commit -am 'changed the site'
Git 查看提交历史
在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看。
针对我们前一章节的操作,使用 git log 命令列出历史提交记录如下:
$ git log
我们可以使用 --online 选项来查看历史记录的简洁的版本。
$ git log --online
这里显示的是 此项目的开发历史。
我们还可以用 --graph 选项,查看历史中什么时候出现了分支 合并 一下为相同的命令,开启了拓扑图选项:
$ git log --oneline --graph
我们也可以用 --reverse 参数来逆向显示所有日志。
$ git log --reverse --oneline
如果只想查找指定用户的提交日志可以使用命令: git log --author 例如,比方说我们要找 Git 源码中Linux提交的部分:
$ git log --author=Linux --oneline -5
如果你要指定日期,可以执行几个选项,--since 和 --before , 但是你也可以用 --until 和 --after
--no-merges 隐藏合并提交