别样的git学习--大白话学git

这篇具有很好参考价值的文章主要介绍了别样的git学习--大白话学git。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

希望用更加口语化的语言向大家讲述git 的魅力

1、Git-stash (贮存)

想象一下,你正在写一封重要的邮件,但突然你的老板告诉你需要立即处理另一个紧急任务。你还没完成邮件,不想丢失已写的内容,但你也需要一个干净的工作空间来处理新的任务。在这种情况下,Git 的 stash 功能就像是一张干净的桌子,你可以把邮件暂时放到一边(stash),清理出空间来处理紧急任务,待任务处理完毕后,再把邮件拿回来(apply)继续写。

在 Git 中,当你正在一个分支上工作,但突然需要切换到另一个分支去做一些工作时,stash 功能就能派上用场。

如何使用 Git 的 Stash 功能:

  1. 保存工作进度:

    1. 假设你正在修改一些文件,但这些更改还没准备好提交,此时你需要切换到其他分支。

    2. 运行 git stash,Git 会保存你的当前更改,并让你的工作目录回到修改之前的状态,就好像你什么都没做一样。

  2. 查看保存的内容:

    1. 你可以通过 git stash list 查看你保存起来的工作进度。

    2. 这就像查看你所有暂时放到一边的邮件清单。

  3. 恢复工作进度:

    1. 完成其他任务后,你可以用 git stash apply 把刚才保存起来的更改恢复回来,继续之前的工作。

    2. 这就像把之前放到一边的邮件拿回来继续写。

  4. 删除保存的内容:

    1. 一旦你恢复了工作进度并完成了工作,你可能不再需要保存的进度了。

    2. 使用 git stash drop 可以删除你不再需要的保存内容。

Stash 使用场景:

  • 当你正在进行一个大的更改,但突然需要切换到另一个分支去处理一个紧急问题时。

  • 当你正在尝试一些实验性的更改,但还没准备好提交这些更改时。

注意事项:

  • Stash 是暂时的,它不是永久保存你更改的方式。所以一旦你用完它,就应该清理掉。

  • Stash 只保存了被 Git 跟踪的文件的更改,如果有些文件是新创建的并且还没有被 Git 跟踪,它们不会被自动保存到 stash 中。

2、Git Clean(清理)

如果你的项目目录中有很多由编译过程、日志文件或其他原因产生的未跟踪文件,你可能想清理它们。

  • 使用场景:清理工作目录中的未跟踪文件(例如,编译生成的文件或临时文件)。

  • 如何使用:

    • 查看将要删除的文件:在删除任何内容之前,先运行 git clean -ngit clean --dry-run。这会显示哪些文件会被删除,但实际上不会删除它们。

    • 删除文件:使用 git clean -f 来删除未跟踪的文件。如果还要删除目录,可以加上 -d 选项。

    • 慎重操作:git clean 是一个危险的命令,因为它会删除文件。在使用它之前,请确保你不会丢失重要的数据。

小白提示

  • 备份数据:在使用 git stashgit clean 之前,请确保重要数据已经备份。

  • 小心使用 git clean:这个命令会删除文件,一旦删除就不能恢复。

  • 逐步操作:特别是对于初学者,一步步地使用命令,并检查每一步的结果,可以帮助你更好地理解这些命令的工作方式。

3、Git Grep

假设你有一个大型项目,里面有成百上千的文件。现在你想要找出所有包含特定单词或代码的文件。这就像是在一个巨大的图书馆里找一本特定的书,但是 Git 的 grep 命令可以帮你快速找到它。

  • 基本使用:运行 git grep "搜索词",Git 会在你的项目中查找包含这个“搜索词”的地方,并告诉你它出现在哪些文件中。

  • 显示行号:如果你还想知道这个“搜索词”在文件中的具体位置(行号),你可以使用 git grep -n "搜索词"

  • 统计次数:如果你只是想知道这个“搜索词”在每个文件中出现了多少次,使用 git grep -c "搜索词"

4、Git Log 日志搜索

现在假设你想了解项目中某个特定功能(比如一个函数)是如何随时间变化的,或者是谁在什么时候做了改动。这就像是想要追踪一部小说中一个角色的所有出场和发展。

  • 内容变更搜索:使用 git log -S "功能名",Git 会显示所有添加或删除这个特定“功能名”的提交记录。这有助于你找出何时及由谁引入或移除了某个功能。

  • 行日志搜索:如果你想深入到具体的代码行级别,看看某个特定函数或代码段是如何变化的,可以使用 git log -L :[函数名]:[文件名]。Git 会告诉你这个函数或代码段的每一次更改。

小结

想象一下,你有一个巨大的照片集,而这些 Git 命令就像是强大的搜索引擎,可以帮助你快速找到你需要的照片。无论是找到特定的单词、代码,还是追踪某个功能的变化历史,这些命令都能让你的工作变得轻松许多。这对于管理大型项目和代码库是非常有帮助的。

5、Git 子模块:

什么是 Git 子模块?

想象一下,你在做一个大的学校项目,这个项目需要用到很多不同的部分(比如一个数学模块,一个艺术模块等)。在 Git 的世界里,这些不同的部分可以是不同的小项目,称为“子模块”,它们可以被组合在你的主项目里。

如何添加子模块?
  1. 添加步骤:就像你在主项目里添加一个文件夹一样,你可以在 Git 中添加一个子模块。假设你的项目叫做“学校项目”,你想添加一个叫做“数学模块”的小项目作为子模块。你需要在“学校项目”的 Git 目录下执行一个命令,比如:git submodule add https://example.com/math-module.git

  2. 记录信息:添加子模块后,Git 会在一个叫做 .gitmodules 的特殊文件里记录下这个子模块的信息,比如它在哪里可以找到(它的网址)。

如果我克隆了一个包含子模块的项目怎么办?

当你克隆一个包含子模块的项目时,Git 不会自动下载这些子模块的内容。你需要额外告诉 Git 去获取它们:

  1. 初始化子模块:首先,你需要告诉 Git 关于这些子模块的信息。这通过运行 git submodule init 来完成。

  2. 下载子模块内容:然后,你需要实际下载这些子模块的内容。这通过运行 git submodule update 来完成。

更新子模块

如果子模块有更新(比如,数学模块有了新的章节),你可以通过运行 git submodule update --remote 来获取最新的内容。

总结

Git 子模块就像是项目中的小项目,你可以在你的主项目中添加、更新和管理它们。这对于组织大项目非常有用,特别是当你需要使用其他地方的代码时。

6、Git Bundle 打包

想象一下,你有一个项目保存在 Git 仓库中,现在你想把这个项目(或者项目的一部分)传给别人,或者带到一个没有网络的地方继续工作。Git 的 git bundle 命令可以帮你做到这一点。它会把你选择的项目内容打包成一个文件,这个文件就像一个便携版的项目仓库。

如何使用 Git Bundle?
  1. 打包项目:

    1. 你可以使用一个命令把整个项目或项目的一部分打包成一个文件。

    2. 例如,命令 git bundle create repo.bundle HEAD main 会创建一个名为 repo.bundle 的文件,里面包含了你项目的主要部分。

  2. 查看打包的文件:

    1. 这个 repo.bundle 文件就像是你的项目的一个压缩包,你可以在任何地方打开它。

如果你拿到了一个 Git Bundle 文件怎么办?

如果有人给你一个这样的 Git Bundle 文件,你可以像克隆普通 Git 仓库那样克隆这个文件。

  1. 从 Bundle 文件克隆:

    1. 使用命令 git clone <bundle文件名> <克隆的目录名> 来创建项目的副本。

    2. 比如 git clone repo.bundle repo 就会从 repo.bundle 文件创建一个名为 repo 的项目副本。

如果只想传送最近的更新怎么办?

有时候你只想分享项目的最近几次更改,而不是整个项目。

  1. 选择要分享的内容:

    1. 首先,使用 git log 命令找出你想分享的更新。

    2. 比如,git log --oneline origin/main..main 会显示从 origin/mainmain 分支的所有更新。

  2. 打包这些更新:

    1. 然后,使用 git bundle create 命令把这些更新打包成一个文件。

    2. 例如,git bundle create commits.bundle main ^5de18d5 会创建一个包含这些更新的 commits.bundle 文件。

总结

git bundle 是一个非常有用的工具,特别是在需要在没有网络的环境下分享或携带 Git 项目时。它允许你将项目的整体或部分内容打包成一个文件,然后在任何地方解压和使用。文章来源地址https://www.toymoban.com/news/detail-821876.html

到了这里,关于别样的git学习--大白话学git的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 设计模式大白话——策略模式

    一、概述 ​ 从名字上来看,此设计模式的核心是 策略 二字,所谓策略,说白了就是能够针对不同的情况随机应变。接下来我将带你领略策略模式的魅力 二、场景举例 场景描述 ​ 现在有一个游戏,游戏中有各种各样的鸭子,有些鸭子是呱呱叫会用翅膀飞,有些鸭子是嘎嘎

    2024年02月16日
    浏览(30)
  • 大白话解析LevelDB: VersionSet

    在 LevelDB 中, VersionSet 类是一个关键的内部组件,负责管理数据库的不同版本。这个类跟踪了所有的 SSTables(排序字符串表)和它们在数据库中的布局。每次对数据库进行修改时(如添加、删除数据),LevelDB 会创建一个新的 Version 对象,这个对象由 VersionSet 管理。 VersionSe

    2024年01月19日
    浏览(31)
  • 用大白话举例子讲明白云计算

    前几天王坚院士在2023云栖大会上发表了关于云计算的演讲,听得我是热血沸腾,王院士称AI和云计算的结合是“云计算的第三次浪潮”,对此我深表认同。但是身边的很多朋友还不知道云计算是什么意思,有些人还认为百度云和百度云盘是一个东西,下面我用大白话举例说明

    2024年02月04日
    浏览(36)
  • React底层原理分析(简单大白话版本)

    react包 react-dom包 react-reconciler包 scheduler包 Fiber对象 diff算法 深度优先遍历  堆排序 链表,栈操作 react合成事件

    2024年01月20日
    浏览(30)
  • 大白话理解-微信小程序获取授权

    微信用户授权,才可以操作微信官方的某些接口。 简单来说就是:微信定义了很多接口,然后他们认为有一部分是涉及到用户使用安全的,所以把这一部分划分了出来,然后这一部分按照功能来拆开各种范围。于是有了scope列表的东西,scope翻译为中文是范围的意思。(定位属于

    2024年02月02日
    浏览(27)
  • 设计模式大白话——适配器模式

    ​ 适配器其实非常好理解,放到生活中来,我们身边处处都有这样的例子,最常见的是用的比较多的各种转接线(如:USB 转 Type-C),有了这个“适配器”,我们就能够将电脑和手机等设备相进行连接,而不需要改动电脑/手机的原有接口。 ​ 回到编程的世界中,假设我们的

    2024年02月10日
    浏览(30)
  • 用大白话举例子讲明白区块链

    什么是区块链?网上这么说: 区块链是一种分布式数据库技术,它以块的形式记录和存储交易数据,并使用密码学算法保证数据的安全性和不可篡改性。每个块都包含了前一个块的哈希值和自身的交易数据,形成了一个不断增长的链条。 区块链的特点包括: 分布式:区块链

    2024年02月04日
    浏览(39)
  • Lighting Network(闪电网络)大白话解析

    通道(Channel),通过在主网宣布通道建立,而后交易双方转至链下交易,把多次交易在链下完成,不占用主网资源,交易完成后在主网广播最终交易结果,无需更改主网机制即可实现吞吐量的提高。 “通道”是一个逻辑上的概念,实际使用过程中并没有“通道”,即使在数据传

    2024年02月04日
    浏览(32)
  • 用大白话来讲讲多线程的知识架构

    感觉多线程的知识又多又杂,自从接触java,就在一遍一遍捋脉络和深入学习。现在将这次的学习成果展示如下。 什么是多线程? 操作系统运行一个程序,就是一个线程。同时运行多个程序,就是多线程。即在同一时间,并行做多件事。 “并行”是相对于我们这些用户来说的

    2024年02月11日
    浏览(31)
  • 大白话说说Docker容器默认网络模型工作原理

    Docker的默认网络模型 —— 桥接模式(Bridge) 当你不做任何特殊设置时,Docker会使用一种叫做“桥接模式”的网络设置。这就像是给你的容器小房子安装了一个虚拟的桥接网络。这座桥连接着容器和你的电脑(宿主机),还能与外界通信。 虚拟网络桥 :想象一下,在你的电

    2024年02月21日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包