Git从入门到熟练第八讲 创建和使用分支

这篇具有很好参考价值的文章主要介绍了Git从入门到熟练第八讲 创建和使用分支。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  在上一讲中我们讲到了git中时间线和提交commit的关系,还介绍了master,HEAD,branch的基本概念。这一讲内容我们学习非常重要的对分支的操作,其中包括:创建分支、分支切换、删除分支以及分支节点的切换。

目录

课前准备:

8.1 分支简介

8.1.1  master分支不是必要的分支

8.2创建和删除分支

8.2.1 创建分支

   8.2.1.1 为了添加新内容创建分支

   8.2.1.2 修改代码(更常见)

8.2.2 删除分支

8.3 分支安全切换

总结:


课前准备:

https://download.csdn.net/download/qq_17204647/86969196

下载这个资源然后解压,运行文件中的下图文件,(右击-git bash here-输入下面代码)

Git从入门到熟练第八讲 创建和使用分支

bash make_math_repo.sh

在同一目录下会生成math文件夹,里面有本章所有操作后的样子。

8.1 分支简介

几乎所有的版本控制系统都在某种形式上支持分支,但是在大多数版本控制系统中,分支的使用是较为低效的过程----常常需要完全创建一个源代码的副本。

但是Git的分支模型却极为轻量,就算是大型项目,创建分支也能在瞬间完成。在不同分支间的切换操作也是一样轻便。

Git分支的创建和合并功能因此也频繁被使用。

之前我们曾学过,当我们创建git仓库时(Repository),Git 会自动创建默认名为master的分支。而在这一章节,我们会看到分支会像树一样,从下往上生长。

Git从入门到熟练第八讲 创建和使用分支

8.1.1  master分支不是必要的分支

当我们创建git的时候,git默认给我们创建了一个名为master的分支,因此很多初学git的人认为这是一个特殊的,重要的分支。实际上,这个分支和我们建立的其他所有分支一样,没有什么特殊的,我们甚至可以删除它!

mkdir empty                                 //创建empty文件夹
cd empty                                    //进入文件目录
git init                                    // 创建git仓库
touch foo                                   //创建名为foo的文件
git add foo     
git commit -m "committing the file foo"     //提交修改
git branch                                  //查看当前所有分支

以上操作后,结果如图

Git从入门到熟练第八讲 创建和使用分支

其中星号*代表当前所在分支。

git branch dev              //创建名为dev的分支
git branch

 结果如图

Git从入门到熟练第八讲 创建和使用分支

我们先切换分支后,将master分支删除

git checkout dev            //切换分支
git branch -d master        //删除master分支
git branch

结果如图

Git从入门到熟练第八讲 创建和使用分支

 我们可以看到,master分支被删除。但是由于dev分支是在master分支建立并提交foo之后节点创建的,因此dev分支在这里享有和master相同的内容。

Git从入门到熟练第八讲 创建和使用分支

因此,请记住,master不是特殊分支,重要的分支是你在项目中,自己决定的。

8.2创建和删除分支

8.2.1 创建分支

在我们的项目中,主分支上的提交,是主要的,干净可运行的代码。

创建分支一般有两种情况,一是我们需要给项目添加新的代码,二是对之前代码进行修改。

第一种情况,如果我们添加新代码在主分支上进行,极有可能导致整个系统崩溃,而且添加新的代码功能常常需要一段时间才能完成。而这段时间,我们不可能让主分支上的代码暴露,完全处于停滞状态。

第二种情况,对于修改bug或是修改代码,常常会引出其他意想不到的bug(如复合式bug)

这个时候,我们就需要创建分支,将我们的工作区域和主分支的工作区域分隔开来。

8.2.1.1 为了添加新内容创建分支

git branch              //查看分支
git branch 分支名       //创建新分支
git checkout 分支名     //切换到指定分支

在当前的节点,输入如下代码,这样我们就得到一个名为new_feature新分支

git branch new_feature

输入gitk可以看到如下图

Git从入门到熟练第八讲 创建和使用分支

然后转到新建的分支,新建文件并提交

git checkout new_feature      //切换到new_feature分支

echo "new file" > newfile.txt
git add newfile.txt
git commit -m "Adding a new file to a new branch"
echo "another new file" > file3.c
git add file3.c
git commit -m "Starting a second new file"

 输入gitk,可以看到如下图

Git从入门到熟练第八讲 创建和使用分支

 上面的查看是在GUI中查看的分支情况,实际上在命令行窗口也可以查看,输入

git log --graph --decorate --pretty=oneline --all --abbrev-commit

显示如下图

Git从入门到熟练第八讲 创建和使用分支

 tips:上面git的命令行太长,而查看提交的分支情况又是常用的命令,因此我们可以用自定义别名来将上面命令变短,操作如下

我们选用lol 作为自定义的git命令别称,然后输入如下代码

git config --global alias.lol "log --graph --decorate --pretty=oneline --all --abbrev-commit"

测试如图:

Git从入门到熟练第八讲 创建和使用分支

 注意:在这里我们需要明确一点,分支间是相互独立的

我们可以在master分支上进行一次修改并提交,

echo "A small update." >> readme.txt
git commit -a -m "A small update to readme."

在gitk中,为了能够查看所有分支情况,在view-new view

Git从入门到熟练第八讲 创建和使用分支

选择黑线框并apply,得到如下显示

Git从入门到熟练第八讲 创建和使用分支

 其中加粗显示的为当前分支,在分支名位置右击,可以如下显示,对分支进行操作

Git从入门到熟练第八讲 创建和使用分支

还有一种更明显的方式能够比较两个不同的工作环境,输入下面代码,并查看工作目录

git checkout master
git checkout new_feature

两个分支下,工作目录分布如下图

Git从入门到熟练第八讲 创建和使用分支                       Git从入门到熟练第八讲 创建和使用分支

 (master分支下文件)                                         (new_feature分支下文件)

 8.2.1.2 修改代码(更常见)

直接转到你需要修改代码的节点,创建分支

git branch 新分支名 SHA1 ID

还有一种更快创建分支的命令

git checkout –b 分支名 start point   //创建分支同时让该分支为当前分支

 其中start point可以是分支名,SHA1 ID或者是一个tag

实践输入如下命令

git branch another_fix_branch 7eb1b19                //在7eb1b19节点创建新分支
git checkout -b fixing_readme another_fix_branch     //在another_fix_branch所在节点创建新分支

结果如下图

Git从入门到熟练第八讲 创建和使用分支Git从入门到熟练第八讲 创建和使用分支

 8.2.2 删除分支

当你创建分支,一般是因为你想尝试一些东西。而有时候这些尝试失败了,则需要删除分支。

git branch –d 分支名   //删除指定分支

删除分支时,记住要先切换到主分支再进行删除操作,不然会显示错误

注意删除这个操作没有自动防故障装置,很容易便可以删除。

但是如果你误删了需要的分支,可以通过以下操作进行补救。

git branch -d fixing_readme          //删除fixing_readme  分支
git branch -d another_fix_branch     //删除another_fix_branch 分支
git checkout -b another_fix_branch 7eb1b19  //恢复误删分支

如果你误删比较久,找不到SHA1 ID,可以输入

git reflog

然后能够显示所有对分支的操作。

8.3 分支安全切换

如果你是在分支中仅增加了新文件,则可以切换到其他分支。

但是如果对分支内容进行修改更新时,如果没有提交更新时无法切换到其他分支的。

但是如果没有完成修改不想提交这个修改,又想切换到其他分支时,可以使用git stash 暂时保存你的修改。这样你就可以切换到其他分支。

回到原先分支继续修改,则可以通过

git stash list          //查看stash里内容
git stash pop          //将stash内修改取出,变成和git stash命令前一样

这里的实践操作可以在课前准备生成的git仓库下进行操作

git checkout another_fix_branch   //切换到another_fix_branch 分支

在math.sh文件中添加一行 c=0 ,切换到master分支

git status
git checkout master

Git从入门到熟练第八讲 创建和使用分支

出现如图问题,不能切换分支。

输入 git stash,重复上述命令,顺利切换分支!

Git从入门到熟练第八讲 创建和使用分支

 而当我们回到原先分支,输入git stash pop命令就可以继续先前操作。

Git从入门到熟练第八讲 创建和使用分支

Git从入门到熟练第八讲 创建和使用分支Git从入门到熟练第八讲 创建和使用分支

 (pop前代码行)                                                    (pop后代码行)

 文章来源地址https://www.toymoban.com/news/detail-457294.html

总结:

本章介绍了git分支的创建和删除操作,还介绍了误删分支时,如何恢复分支。简单讲解了git stash在分支切换时,挂起修改的作用。

 

 

到了这里,关于Git从入门到熟练第八讲 创建和使用分支的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用vscode创建git新分支

    使用vscode创建git新分支(比如siot7),创建的只是本地分支,没有创建远程分支。  在新分支(siot7)开发,然后提交到远程新分支(siot7)的步骤: 1、切换到新分支siot7开发。 2、git add . 3、git commit -m \\\"在新分支开发的功能\\\" 4、git pull origin siot7 5、第一次提交到新分支用:gi

    2024年02月12日
    浏览(35)
  • 使用git本地创建多分支教程

    选择想要新建分支的位置打开git 初始化git 会发现文件夹中生成了隐藏的.git文件夹。 新建分支 checkout -b 会新建分支并且切换到这个分支 commit一次 查看缓存区 重点来了,给远程仓库新建这个分支 仓库url示例:git@gitee.com:账户名/仓库名.git,可以在gitee仓库管理查到 查看仓库信

    2024年02月16日
    浏览(26)
  • 第八讲 端口和激励详解

    1.概述 (1)激励 ·所谓激励,顾名思义就是指在进行仿真分析时需要提供的激励信号源 ·在CST微波工作室中,提供了多种不同类型的激励源,用于分析不同类型问题的分析 ·在运行仿真分析之前,至少要设置一个激励源作为结构的输入信号激励 (2)激励类型 端口激励(Port

    2024年02月15日
    浏览(40)
  • git的分支的使用,创建分支,合并分支,删除分支,合并冲突,分支管理策略,bug分支,强制删除分支

    查看当前本地仓库中有哪些分支 HEAD所指向的分支就是当前正在工作的分支 创建一个分支 创建好了,但是目前还是指向 master 用tree命令也可以看到已经创建分支成功了 创建出来的分支,和主分支的最新记录是一样的 切换分支就是让HEAD指向我们的dev分支 我们在dev分支上堆R

    2024年02月04日
    浏览(37)
  • Git从入门到熟练第十讲 cloning

    前言: 上一讲我们了解了git分支合并和合并冲突,这里我们讲解git clone,即从源复制项目到本地,这是我们说明git远程协同合作功能中第一讲(一共四讲)。 https://download.csdn.net/download/qq_17204647/86969196 下载这个资源然后解压,运行文件make_math_repo.sh,在同一目录下会生成math文件夹

    2024年02月13日
    浏览(25)
  • git使用工具sourcetree创建分支合并主支

    平时项目开发中,需要从主支上拉取代码,创建自己的分支,将需要发布的部分代码提交到分支上,再合并到主支,记录一下操作 第一步:正常clone项目到sourcetree上,克隆部分就不写了 第二步:点击“分支”,创建属于自己的分支(可以用自己名字简称,比较有辨识度),

    2024年02月11日
    浏览(42)
  • 使用idea中git创建分支,并推送代码

    工作中,遇到好几个版本需求怎么办呢,这时候就需要把不同版本的代码保存到不同的分支上,这样方便开发和部署 1、右击项目名 2、找到git并点开 3、点击Repository 4、点击Branches 1、点击new branch 创建分支 2、给分支起名字,点击ok,自动切换到创建的分支 1、右击项目名 2、

    2024年02月11日
    浏览(35)
  • Git小乌龟tortoisegit使用自我小结(初始化、提交、推送、拉取、新建分支、切换分支、创建空白分支)

    新建一个新文件夹File,然后进入 创建版本库 初始化之后,分支无法显示,需要创建文件并提交,才是真正的初始化 创建文件file01.txt 右键空白处,点击提交按钮 对提交内容进行操作 第一步 第二步 第一步 第二步 此方法也可以用于 文件夹里已有文件,但是不想删除,直接推

    2024年02月16日
    浏览(59)
  • MyBatis第八讲:MyBatis插件机制详解与实战

    MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢?本文是MyBatis第8讲,对MyBatis插件机制详解。

    2024年02月13日
    浏览(43)
  • Redis 7 第八讲 集群模式(cluster)架构篇

    Redis 集群架构图         Redis 集群是一个提供在多个Redis节点间共享数据的程序集;Redis集群可以支持多个master  Redis集群支持多个master,每个master又可以挂载多个slave 读写分离 支持数据的高可用 支持海量数据的读写存储操作 集群自带Sentinel的故障转移机制,内置支持高可用,

    2024年02月10日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包