我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Git仓库管理的实现方法有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Git仓库管理的实现方法有哪些

这篇文章主要讲解了“Git仓库管理的实现方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Git仓库管理的实现方法有哪些”吧!

有权访问源代码使对安全性的分析以及应用程序的安全成为可能。但是,如果没有人真正看过代码,问题就不会被发现,即使人们主动地看代码,通常也要看很多东西。幸运的是,GitHub  拥有一个活跃的安全团队,最近,他们 发现了已提交到多个 Git  仓库中的特洛伊木马病毒,甚至仓库的所有者也偷偷溜走了。尽管我们无法控制其他人如何管理自己的仓库,但我们可以从他们的错误中吸取教训。

Git仓库管理的实现方法有哪些

了解你的仓库

Git仓库管理的实现方法有哪些

Git 仓库终端这对于安全的 Git  仓库来可以说是头号规则。作为项目维护者,无论是你自己创建的还是采用别人的,你的工作是了解自己仓库中的内容。你可能无法记住代码库中每一个文件,但是你需要了解你所管理的内容的基本组成部分。如果在几十个合并后出现一个游离的文件,你会很容易地发现它,因为你不知道它的用途,你需要检查它来刷新你的记忆。发生这种情况时,请查看该文件,并确保准确了解为什么它是必要的。

禁止二进制大文件

Git仓库管理的实现方法有哪些

终端中 Git 的二进制检查命令

Git 是为文本而生的,无论是用纯文本编写的 C 或 Python 还是 Java 文本,亦或是  JSON、YAML、XML、Markdown、HTML 或类似的文本。Git 对于二进制文件不是很理想。

两者之间的区别是:

$ cat hello.txt This is plain text. It's readable by humans and machines alike. Git knows how to version this. $ git diff hello.txt diff --git a/hello.txt b/hello.txt index f227cc3..0d85b44 100644 --- a/hello.txt +++ b/hello.txt @@ -1,2 +1,3 @@  This is plain text. +It's readable by humans and machines alike.  Git knows how to version this.

$ git diff pixel.png diff --git a/pixel.png b/pixel.png index 563235a..7aab7bc 100644 Binary files a/pixel.png and b/pixel.png differ $ cat pixel.png �PNG ▒ IHDR7n�$gAMA��               �abKGD݊�tIME�                           -2R�� IDA�c`�!�3%tEXtdate:create2020-06-11T11:45:04+12:00��r.%tEXtdate:modify2020-06-11T11:45:04+12:00��ʒIEND�B`�

二进制文件中的数据不能像纯文本一样被解析,因此,如果二进制文件发生任何更改,则必须重写整个内容。一个版本与另一个版本之间唯一的区别就是全部不同,这会快速增加仓库大小。

更糟糕的是,Git 仓库维护者无法合理地审计二进制数据。这违反了头号规则:应该对仓库的内容了如指掌。

除了常用的 POSIX 工具之外,你还可以使用 git diff 检测二进制文件。当你尝试使用 --numstat 选项来比较二进制文件时,Git  返回空结果:

$ git diff --numstat /dev/null pixel.png | tee -     -   /dev/null => pixel.png $ git diff --numstat /dev/null file.txt | tee 5788  0   /dev/null => list.txt

如果你正在考虑将二进制大文件(BLOB)提交到仓库,请停下来先思考一下。如果它是二进制文件,那它是由什么生成的。是否有充分的理由不在构建时生成它们,而是将它们提交到仓库?如果你认为提交二进制数据是有意义的,请确保在  README  文件或类似文件中指明二进制文件的位置、为什么是二进制文件的原因以及更新它们的协议是什么。必须谨慎对其更新,因为你每提交一个二进制大文件的变化,它的存储空间实际上都会加倍。

让第三方库留在第三方

第三方库也不例外。尽管它是开源的众多优点之一,你可以不受限制地重用和重新分发不是你编写的代码,但是有很多充分的理由不把第三方库存储在你自己的仓库中。首先,除非你自己检查了所有代码(以及将来的合并),否则你不能为第三方完全担保。其次,当你将第三方库复制到你的  Git  仓库中时,会将焦点从真正的上游源代码中分离出来。从技术上讲,对库有信心的人只对该库的主副本有把握,而不是对随机仓库的副本有把握。如果你需要锁定特定版本的库,请给开发者提供一个合理的项目所需的发布  URL,或者使用 Git 子模块。

抵制盲目的 git add

Git仓库管理的实现方法有哪些

Git 手动添加命令终端中

如果你的项目已编译,请抵制住使用 git add . 的冲动(其中 .  是当前目录或特定文件夹的路径),因为这是一种添加任何新东西的简单方法。如果你不是手动编译项目,而是使用 IDE 为你管理项目,这一点尤其重要。用 IDE  管理项目时,跟踪添加到仓库中的内容会非常困难,因此仅添加你实际编写的内容非常重要,而不是添加项目文件夹中出现的任何新对象。

如果你使用了 git add .,请在推送之前检查暂存区里的内容。如果在运行 make clean 或等效命令后,执行 git status  时在项目文件夹中看到一个陌生的对象,请找出它的来源,以及为什么仍然在项目的目录中。这是一种罕见的构建工件,不会在编译期间重新生成,因此在提交前请三思。

使用 Git ignore

Git仓库管理的实现方法有哪些

终端中的命令

许多为程序员打造的便利也非常杂乱。任何项目的典型项目目录,无论是编程的,还是艺术的或其他的,到处都是隐藏的文件、元数据和遗留的工件。你可以尝试忽略这些对象,但是  git status 中的提示越多,你错过某件事的可能性就越大。

你可以通过维护一个良好的 gitignore 文件来为你过滤掉这种噪音。因为这是使用 Git 的用户的共同要求,所以有一些入门级的 gitignore  文件。Github.com/github/gitignore 提供了几个专门创建的 gitignore  文件,你可以下载这些文件并将其放置到自己的项目中,Gitlab.com 在几年前就将gitignore  模板集成到了仓库创建工作流程中。使用这些模板来帮助你为项目创建适合的 gitignore 策略并遵守它。

查看合并请求

Git仓库管理的实现方法有哪些

Git  合并请求

当你通过电子邮件收到一个合并/拉取请求或补丁文件时,不要只是为了确保它能正常工作而进行测试。你的工作是阅读进入代码库的新代码,并了解其是如何产生结果的。如果你不同意这个实现,或者更糟的是,你不理解这个实现,请向提交该实现的人发送消息,并要求其进行说明。质疑那些希望成为版本库永久成员的代码并不是一种社交失误,但如果你不知道你把什么合并到用户使用的代码中,那就是违反了你和用户之间的社交契约。

Git 责任

社区致力于开源软件良好的安全性。不要鼓励你的仓库中不良的 Git 实践,也不要忽视你克隆的仓库中的安全威胁。Git  功能强大,但它仍然只是一个计算机程序,因此要以人为本,确保每个人的安全。

感谢各位的阅读,以上就是“Git仓库管理的实现方法有哪些”的内容了,经过本文的学习后,相信大家对Git仓库管理的实现方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Git仓库管理的实现方法有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Git仓库搭建及分支管理的方法

这篇文章主要讲解了“Git仓库搭建及分支管理的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Git仓库搭建及分支管理的方法”吧!1. Git是什么?Git是一款开源的分布式版本控制系统,
2023-06-29

git分支管理的方法有哪些

这篇文章主要介绍了git分支管理的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇git分支管理的方法有哪些文章都会有所收获,下面我们一起来看看吧。分支管理1 创建分支使用git checkout:$
2023-06-29

Gitee上删除仓库的方法有哪些

今天小编给大家分享一下Gitee上删除仓库的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。第一步:登录Gitee帐
2023-07-05

搭建maven私有仓库的方法实现

Maven是一个流行的Java项目管理工具,它可以帮助我们管理项目的构建、报告和文档,本文主要介绍了搭建maven私有仓库的方法实现,感兴趣的可以了解一下
2023-05-20

Python上下文管理器实现方法有哪些

这篇文章主要介绍“Python上下文管理器实现方法有哪些”,在日常操作中,相信很多人在Python上下文管理器实现方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python上下文管理器实现方法有哪些
2023-06-20

hse管理方法有哪些

hse管理方法主要有:1、风险识别与控制;2、安全经验分享;3、目视化管理;4、作业许可;5、个人安全行动计划;6、高风险控制模型;7、“矩阵式”HSE检查;8、HSE可视化;9、团队式班前会;10、HSE停工授权。HSE可视化是指将HSE数据以图形化的方式展示,以便于人们更好地理解和分析。
hse管理方法有哪些
2023-10-29

golang包管理的方法有哪些

Go语言的包管理主要有以下几种方法:go mod:自从Go 1.11版本引入了go mod,它成为了Go语言默认的包管理工具。go mod会自动下载依赖包,并且将依赖的版本信息保存在go.mod文件中。使用go mod可以方便地管理项目的依
golang包管理的方法有哪些
2024-02-29

git的使用方法有哪些

这篇文章主要介绍了git的使用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇git的使用方法有哪些文章都会有所收获,下面我们一起来看看吧。安装下载 git OSX 版下载 git Windows 版下
2023-06-27

git使用的方法有哪些

本篇内容主要讲解“git使用的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“git使用的方法有哪些”吧!安装git首先,需要在计算机上安装git。可以到git官网(https://gi
2023-07-06

mysql分库分表的实现方法有哪些

在MySQL中,实现分库分表有多种方法,包括:水平分库:将数据按照一定规则分散到不同的数据库中,通常是按照用户ID或者时间段进行分库。垂直分库:将数据按照业务模块划分到不同的数据库中,例如将用户信息存储在一个数据库中,将订单信息存储在另一个
mysql分库分表的实现方法有哪些
2024-04-17

Linux权限管理的方法有哪些

这篇文章主要讲解了“Linux权限管理的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux权限管理的方法有哪些”吧!权限入门1. 文件属性如果你刚听到 文件属性 这几个字眼感
2023-06-15

Fedora进程管理的方法有哪些

本篇内容主要讲解“Fedora进程管理的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Fedora进程管理的方法有哪些”吧!多任务反映在计算机系统中就是多个进程,每一个任务或者作业都是
2023-06-17

Linux磁盘管理的方法有哪些

本文小编为大家详细介绍“Linux磁盘管理的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux磁盘管理的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、存储设备的挂载和卸载 存储设备
2023-06-28

Android线程管理的方法有哪些

Android线程管理的方法有以下几种:1. 使用Thread类:可以通过创建Thread对象并调用start()方法来启动新的线程。可以使用Thread类的一些方法来管理线程的状态,如sleep()方法可以使线程休眠一段时间,interr
2023-09-23

go内存管理的方法有哪些

Go语言的内存管理主要包括以下几个方法:垃圾回收:Go语言使用自动垃圾回收(Garbage Collection)来管理内存。垃圾回收器会自动识别不再被使用的对象,并释放其占用的内存。栈分配:Go语言中的函数局部变量和参数是在栈上分配的,栈
go内存管理的方法有哪些
2024-02-29

编程热搜

目录