首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

git使用指南(2)

#Git 分支管理

几乎每一种版本控制系统都会以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

有人把Git的分支模型称之为“必杀技特性”,而正是因为它,却能够将Git从版本控制系统家族里区分出来。

接下来我们动手实践。

创建分支命令:

git branch(branchname)

切换分支命令:

git checkout(branchname)

当你切换分支的时候,Git会用该分支的最后提交的快照替换你的工作目录的内容,所以多个分支不需要多个目录。

合并分支命令:

git merge

你可以多次合并到统一分支,也可以选择在合并之后直接删除被并入的分支。

# Git分支管理基本命令

列出分支

列出分支基本命令:

git branch

没有参数时,git branch 会列出你在本地的分支。

这行代码的意思是,我们有一个叫做“master”的分支,并且该分支是当前分支。当你执行git init 的时候,缺省状态下Git就会为你创建“master”分支。

当然,如果我们要手动创建一个分支也是可以的,执行git branch (branchname) 即可。

现在我们可以看到,有了一个新的分支testing。

当你以此方式在上次提交更新之后创建了新分支,如果后来又有了更新提交,然后又切换到了“testing”分支,Git将还原你的工作目录到你创建分支时候的样子。

接下来我将演示如何切换分支,我们用git checkout (checkout) 切换到我们要修改的分支。

神奇的事情发生了,当我们切换到“testing”分支时,我们添加的新文件test.txt被移除了,原来被删除的文件hello.php又出现了。切换回master的时候,它们又重新出现了。

当然,我们也可以使用git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。

现在先切换回master仓库

在master仓库下生成一个test2.txt文件

将test2.txt 添加到缓存区。

将缓存区中的test2.txt添加到仓库中。

可以在仓库中看到,我们已经成功将新建立的test2.txt添加到了仓库中。

建立一个新分支newtest并且立即进入。完整示例如下:

我们可以看到当我们使用

$ git checkout-b newtest

这条指令时,我们创建了一个新的分支newtest并且立即进入了该分支,而且该分支继承了主分支下的所有文件。当我们删除掉newtest分支中的test2.txt的时候,并不会影响到master分支下的文件。

#删除分支

删除分支命令

git branch-d(branchname)

这里我们删除掉testing分支

#分支合并

一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。你可以使用以下命令将任何分支合并到当前分支中去:

git merge

上述示例中我们将newtest分支合并到了主分支上去,test2.txt文件将被删除。

#合并冲突

合并并不仅仅是简单地文件添加、移除的操作,Git也会合并修改。

将修改的内容提交到“change_site”分支中。现在,假如切换回“master”分支我们可以看内容恢复到我们修改前的,我们再次修改test.txt文件。

现在这些改变已经记录到我的“master”分支了。接下来我们将“change_site”分支合并过来。

我们将前一个分支合并到“master”分支,一个合并冲突就出现了,接下来我们需要手动去修改它。

在Git中,我们可以用git add要告诉Git文件冲突已经解决。

现在我们成功解决了合并中的冲突,并提交了结果。

#Git 查看提交历史

在使用Git提交了若干更新之后,又或者克隆了某个项目,想回顾一下历史骂我们可以使用git log命令查看。

针对我们之前的一系列操作,使用git log 命令列出历史提交记录如下:

(按q退出)

我们可以用 --oneline 来查看历史记录的简洁版本。

这些告诉了我们,该项目的开发历史

我们还可以用 --graph 选项,查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选项:

现在我们可以更清楚明了的看到何时工作分叉,又何时归并。

你也可以用 ‘--reverse’ 参数来逆向显示所有日志。

如果只想查找指定用户的提交日志可以使用命令:git lot --author,例如,假如我们要找到我(Ghost)提交的部分:

如果你还想指定特殊的日期,可以执行以下几个选项:--since 和 --before ,

但是你也可以用 --until 和 --after。

例如,如果我要看Git项目中一天前的所有提交,我可以执行以下代码,同时我使用了 --no-merges 隐藏了合并提交。

我们就可以看到我们昨天的所有操作啦。

所以我们在仓库中对代码做的所有操作都是有记录的哦,我们在对仓库操作的时候一定要小心谨慎~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180713G1LI3800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券