|
|
51CTO旗下网站
|
|
挪动端

Git分支操纵引见:为何故及怎样运用分支?

在本系列的前两篇文章中,我们开端运用 Git,学会怎样克隆项目,修正、添加和删除内容。在这第三篇文章中,我将引见 Git 分支,为何故及怎样运用分支。

作者:Kedar Vijay Kulkarn泉源:通博8888官网中国|2018-06-08 09:27

Git分支操纵引见:为何故及怎样运用分支?

在这个 Git 入门系列的第三篇中,我们来学习一下怎样添加和删除 Git 分支。

在本系列的前两篇文章中,我们开端运用 Git,学会怎样克隆项目,修正、添加和删除内容。在这第三篇文章中,我将引见 Git 分支,为何故及怎样运用分支。

树枝

tree branches

无妨用树来描画 Git 堆栈。图中的树有许多分支,或长或短,或从树干延伸或从别的分支延伸。在这里,我们用树干比作堆栈的 master 分支,此中 master 代指 ”master 分支”,是 Git 堆栈的中央分支或第一个分支。为复杂起见,我们假定 master 是树干,别的分支都是从该分支分出的。

为安在 Git 堆栈中运用分支

运用分支的次要来由为:

  • 假如你盼望为项目添加新特性,但很能够会影响以后可正常任务的代码。关于该项目标活泼用户而言,这是很蹩脚的事变。与其将特性参加到别的人正在运用的 master 分支,更好的办法是在堆栈的别的分支中变卦代码,上面会给出详细的任务方法。
  • 更紧张的是,Git 其设计用于协作。假如一切人都在你代码堆栈的 master 分支上操纵,会引发许多杂乱。对编程言语或项目标知识和阅历因人而异;有些人能够会编写有错误或缺陷的代码,也能够会编写你以为不合适该项目标代码。运用分支可以让你核验别人的奉献并选择合适的参加到项目中。(这里假定你是代码库独一的一切者,盼望对添加到项目中的代码有完全的控制。在真实的项目中,代码库有多个具有兼并代码权限的一切者)

创立分支

让我们回忆本系列上一篇文章,看一下在我们的 Demo 目次中分支是怎样的。假如你没有完成上述操纵,请依照文章中的指示从 GitHub 克隆代码并进入 Demo 目次。运转如下下令:

  1. pwd
  2. git branch
  3. ls -la

pwd 下令(是以后任务目次的英文缩写)前往以后你所处的目次(以便确认你在 Demo 目次中),git branch 列出该项目在你主机上的全局部支,ls -la 列出以后目次下的一切文件。你的终端输入相似于:

终端输入

Terminal output

master 分支中,只要一个文件 README.md。(Git 会敌对地疏忽失别的目次和文件。)

接上去,运转如下下令:

  1. git status
  2. git checkout -b myBranch
  3. git status

第一条下令 git status 见告你以后位于 branch master,(就像在终端中看到的那样)它与 origin/master 处于同步形态,这意味着 master 分支的当地正本中的全部文件也呈现在 GitHub 中。两份正本没有差别,一切的提交也是分歧的。

下一条下令 git checkout -b myBranch 中的 -b 见告 Git 创立一个名为 myBranch 的新分支,然后 checkout 下令将我们切换到新创立的分支。运转第三条下令 git status 确保你曾经位于刚创立的分支下。

如你所见,git status 见告你以后处于 myBranch 分支,没有变卦需求提交。这是由于我们既没有添加新文件,也没有修正已有文件。

终端输入

Terminal output

假如盼望以可视化的方法检查分支,可以运转 gitk 下令。假如遇到报错 bash: gitk: command not found...,请先装置 gitk 软件包(找到你操纵零碎对应的装置文档,以取得装置方法)。

(LCTT 译注:需求在有 X 效劳器的终端运转 gitk,不然会报错)

下图展现了我们在 Demo 项目中的所作所为:你最初一次提交(的对应信息)是 Delete file.txt,在此之前有三次提交。以后的提交用黄点标注,之前的提交用蓝点标注,黄点和 Delete file.txt 之间的三个方块展现每个分支地点的地位(或许说每个分支中的最初一次提交的地位)。由于 myBranch 刚创立,提交形态与 master 分支及其对应的记为 remotes/origin/master 的近程 master 分支坚持分歧。(十分感激来自 Red Hat 的 Peter Savage 让我晓得 gitk 这个东西)

Gitk 输入

Gitk output

上面让我们在 myBranch 分支下创立一个新文件并察看终端输入。运转如下下令:

  1. echo "Creating a newFile on myBranch" > newFile
  2. cat newFile
  3. git status

第一条下令中的 echo 创立了名为 newFile 的文件,接着 cat newFile 打印出文件内容,最初 git status 见告你我们 myBranch 分支确当前形态。在上面的终端输入中,Git 见告 myBranch 分支下有一个名为 newFile 的文件以后处于 untracked 形态。这标明我们没有让 Git 追踪发作在文件 newFile 上的变卦。

终端输入

Terminal output

下一步是添加文件,提交变卦并将 newFile 文件推送至 myBranch 分支(请回忆本系列上一篇文章取得更多细节)。

  1. git add newFile
  2. git commit -m "Adding newFile to myBranch"
  3. git push origin myBranch

在上述下令中,push 下令运用的分支参数为 myBranch 而不是 master。Git 添加 newFile 并将变卦推送到你 GitHub 账号下的 Demo 堆栈中,见告你在 GitHub 上创立了一个与你当地正本分支 myBranch 一样的新分支。终端输入截图给出了运转下令的细节及下令输入。

终端输入

Terminal output

当你拜访 GitHub 时,在分支选择的下拉列表中可以发明两个可供选择的分支。

GitHub

GitHub

点击 myBranch 切换到 myBranch 分支,你可以看到在此分支上新增的文件。

GitHub

GitHub

停止现在,我们有两个分支:一个是 master 分支,只要一个 README.md 文件;另一个是 myBranch 分支,有两个文件。

你曾经晓得怎样创立分支了,上面我们再创立一个分支。输出如下下令:

  1. git checkout master
  2. git checkout -b myBranch2
  3. touch newFile2
  4. git add newFile2
  5. git commit -m "Adding newFile2 to myBranch2"
  6. git push origin myBranch2

我不再给出终端输入,需求你本人实验,但你可以在 GitHub 代码库 中验证你的后果。

删除分支

由于我们添加了两个分支,上面删除此中的一个(myBranch),包罗两步:

  1. 删除当地分支 你不克不及删除正在操纵的分支,故切换到 master 分支 (或别的你盼望保存的分支),下令及终端输入如下:

    git branch 可以列出可用的分支,运用 checkout 切换到 master 分支,然后运用 git branch -D myBranch 删除该分支。再次运转 git branch 反省能否只剩下两个分支(而不是三个)。

  2. 删除 GitHub 上的分支 运用如下下令删除 myBranch 的近程分支:

    1. git push origin :myBranch

    Terminal output

    Terminal output

下面 push 下令中分支称号后面的冒号(:)见告 GitHub 删除分支。另一种写法为:

  1. git push -d origin myBranch

此中 -d (也可以用 --delete) 也用于见告 GitHub 删除你的分支。

我们学习了 Git 分支的运用,在本系列的下一篇文章中,我们将引见怎样实行 fetchrebase 操纵,关于多人同时的奉献的项目而言,这是很必需学会的。

【编辑引荐】

  1. 当开源技能遇上大数据创新
  2. 怎样运用GNU Parallel进步通博8888官网下令行实行服从
  3. 三款新星通博8888官网处理方案:Snappy、Flatpak和AppImage
  4. Ubuntu保持战役,通博8888官网桌面的悲痛
  5. 5个来由,开源助你求职乐成
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
各人都在看
猜你喜好

读 书 +更多

数据库加密——最初的防地

本书是关于怎样运用已有的暗码技能和算法对数据库中存储的信息停止维护的书,书中所存眷的内容次要是怎样设计、树立(或许挑选、集成)一套...

订阅51CTO邮刊

点击这里检查样刊

订阅51CTO邮刊