Git 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Git 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Git 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPLv2
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具Git开源工具
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-09-08

软件简介

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

Git的特点

  • 分支更快、更容易。

  • 支持离线工作;本地提交可以稍后提交到服务器上。

  • Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。

  • Git 中的每个工作树都包含一个具有完整项目历史的仓库。

  • 没有哪一个 Git 仓库会天生比其他仓库更重要。

Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

实际上内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的内部工作机制来说,的确是这样。但是随着开发的深入,Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。现在,越来越多的著名项目采用 Git 来管理项目开发。

Git 与 SVN 区别

  • GIT是分布式的,SVN不是
  • GIT把内容按元数据方式存储,而SVN是按文件
  • GIT分支和SVN的分支不同
  • GIT没有一个全局的版本号,而SVN有
  • GIT的内容完整性要优于SVN

Git的缺点

  • 学习资料少。
  • 学习周期相对而言比较长。
  • 不符合常规思维。
  • 代码保密性差。

配置Git环境

在Windows下,可以使用Git For Windows安装包进行安装。 在 Windows 平台上安装 Git 同样轻松,有个叫做msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行。

完成安装后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。在开始菜单里找到"Git"->"Git Bash",会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。

在 Mac 平台上安装 Git 最容易的是使用图形化的 Git 安装工具,点击下载安装界面如左图所示 。

完成安装后,在终端输入“git”,如果出现了使用帮助信息,说明安装成功。如果安装未成功,请尝试重新安装。

在Linux下安装Git,只需要在终端输入“apt install git”即可。

安装完Git后,需要进行配置,如姓名、Email等。关键命令如下:

git config --global user.name "你的名字"
git config --global user.email 你的邮箱名@主机名.域名

# 例如
git config --global user.name "San Zhang"
git config --global user.email san-zhang@outlook.com

设置Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。如果你有其他偏好,可以进行重新设置:

git config --global core.editor 文本编辑器名字

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。

git config --global merge.tool 分析工具名字

要检查已有的配置信息,可以使用 git config --list 命令:。有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),不过最终 Git 实际采用的是最后一个。也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

git config user.name

开源中国Git托管平台:码云

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(44)
发表了资讯
04/20 07:01

Git 2.36 发布

Git 2.36 现已发布,本次更新包含来自超过 96 个贡献者的功能和错误修复,其中 26 个是新贡献者。该版本包含与最近的维护版本相同的修复,以解决 CVE-2022-24765 问题。 主要更新内容 增加了一个由ort驱动的新功能,即 --remerge-diff 选项,作为审查合并冲突解决方案的改进体验。Git 的 --remerge-diff 会显示有合并冲突的文件和解决方案之间的差异。 更灵活的 fsync 配置。Git 2.36 引入了一套明显更灵活的配置选项,以调整 ...

3
0
发表了资讯
01/25 07:56

Git 2.35 发布

Git 2.35 发布了,该版本包含来自超过 93 个贡献者的特性和错误修复,其中 35 个是新贡献者。 该版本的亮眼功能如下: git stash拥有新的--staged模式,可以很容易地把放在暂存区的更改隐藏起来,以供以后复用。--staged 支持使用任何工具选择要隐藏的更改。【源代码】 git log 有一组丰富的 --format 选项,可以使用它们来自定义 git log 的输出。在修饰终端时会很方便,对于围绕 git log 的输出编写脚本更有帮助。【源代码】 ...

0
1
2021/11/16 07:37

Git 2.34 发布

Git 2.34 现已发布,本次更新包含来自超过 109 个贡献者的功能和错误修复,其中 29 个是新贡献者。 主要更新内容 增加了一个支持稀疏索引的功能,以帮助处理类似"monorepo"设置的非常大的Git存储库。该索引格式能够理解标记的目录,在稀疏检出时表明内容之间的关系。 添加了多包可达性位图。Git 2.34 引入了一种新的位图格式,该格式与多包索引文件的内容相关联。这意味着位图现在可以灵活地表示多个包中的对象,并且服务器运营...

10
2
2021/08/18 06:07

Git 2.33 发布,新增“merge-ort”合并实现 500-9000 倍加速

Git 2.33 现已发布,本次更新由 74个人贡献的 449 个非合并提交组成,其中 19 位是新面孔。此版本并没有很多面向终端用户的变化和新功能,但在这个周期内包含了很多修复和内部改进。 另外,新的合并策略后端(可以用 "git merge -sort")的准备工作已经进入最后阶段。官方表示,其有希望在下一个版本中成为默认设置。 具体来说,Git 2.33 带来了有关 geometric repacking 的最新补丁、“merge-ort”作为处理跨分支 Git 合并的新...

2
4
2021/06/07 07:45

Git 2.32.0 发布

Git 2.32.0 已经发布,本次更新由 100 个人贡献的 619 个非合并提交组成,其中 35 位是新面孔。包含了性能优化、可用性增强、以及大量的错误修复内容。 主要更新内容 git repack 现在采用了一个"cleverer strategy"来降低重新打包仓库的成本。 git push 的 v2 协议现在会发现与接收端的 common ancestors,以希望能使 Git 推送更有效率,对象不会被不必要地转移。 Gitweb 增加了一个电子邮件隐私功能,在这个 Git 网页界面的网页...

0
2
2021/03/17 07:05

Git 2.31.0 发布

Git 2.31.0 已经发布,本次更新由 85 个人贡献的 679 个非合并提交组成,其中 23 位是新面孔。 主要更新内容 从 Contributor Covenant 1.4 改为采用 Contributor Covenant 2.0 取消了对过时的 PCRE1 库的支持 修复了 Git 2.30.2(及更早版本)中的 CVE-2021-213 "git maintenance" 支持计划性维护 配置变量 'core.abbrev' 可以被设置为 'no',以实现无论哈希算法如何,都强制不使用缩写 "git rev-parse" 可以被明确告知以绝对路...

2
2
发表于开发技能专区
2021/02/11 08:38

SDL 核心人员称 Git 做了一些灾难性设计选择,但仍迁移到 GitHub

SDL 于 10 日迁移到 GitHub。SDL(Simple DirectMedia Layer)是一个跨平台的多媒体和游戏开发包,提供 2D,音频,事件驱动,多线程和定时器等服务。 SDL 在 2010 年 4 月从 Subversion 切换到 Mercurial,现在则从 Mercurial 迁移向更流行的 Git 和 GitHub。 其核心开发者之一 Gordon 9 日发表对迁移举动的看法。他认为 Mercurial 是更好的软件,并且 Git 做出了一些灾难性的设计选择。Gordon 还透露,此前 SDL 不考虑迁移都 ...

8
4
2021/02/10 07:12

Git 2.30.1 发布

Git 2.30.1 已经发布,此版本主要用于合并 “master” 上累积的修补程序,以准备仍与 2.30.x 相关的 2.31 版本发布。 部分更新内容 修复了 "git fetch --recurse-submodules" 更新子模块失败的问题 较早诊断出 “git rebase” 命令行的错误 修复了 “git stash” 效果不佳的问题 “git for-each-repo --config = <var> <cmd>” 不再运行 <cmd> 未定义配置变量 <var> 时的任何存储库 修复了 “git mergetool --tool-help” 在 2....

3
3
发表于信息安全专区
2021/01/14 08:16

联合国公开的 Git 凭据致使数十万员工信息暴露

安全研究小组 Sakura Samurai 披露了一个安全漏洞,他们利用这一漏洞访问联合国环境规划署超 10 万个员工的信息。 在参与联合国的漏洞披露和名人馆资讯安全计划时,Sakura Samurai 小组发现了暴露 Git 凭据的端点。这些凭据使他们能够下载 Git 存储库,从而识别大量用户凭据和个人身份信息 PII。Sakura Samurai 起初接管了国际劳工组织的一个 MySQL 数据库并在调查管理平台上执行帐户接管之后,开始列举其他域/子域。最终在联合...

9
4
2021/01/08 08:14

因 Git 服务器配置错误,日产汽车源码泄露

日产北美公司开发和使用的移动应用及内部工具的源代码于近日在网上泄露,原因是该公司错误配置了其中一台 Git 服务器。 瑞士软件工程师 Tillie Kottmann 向 ZDNet 透露,此次泄露源于一台配置错误的 Bitbucket Git 服务器的信息在互联网上泄露并传播,该服务器使用了默认地用户名和密码组合 admin/admin。直到周三,该服务器才脱机。 Kottmann 称,其从匿名消息源处得知泄密事件并于周一分析了日产的数据。分析发现,泄露的 Gi...

6
6
发表于开发技能专区
2020/12/30 07:16

Git 2.30 稳定版发布,默认分支名改为"main"已成趋势

Git 2.30 稳定版发布了,更新内容基本与上次发布的 RC 版本保持一致。Git 团队介绍了部分将默认分支名由"master"改为"main"的知名项目,例如 LLVM、Fedora、Mesa,以及其他许多正在计划迁移或已经迁移的项目。 Git 团队指出,一旦 GitHub 推出新功能来增强更改默认分支名的工作流,预计还会有更多的项目跟进。 从 2.28 版本起,Git 开始支持对默认分支名进行配置以取代一直以来的"master"用法。对于希望把默认 Git 分支名字从"...

12
3
发表于开发技能专区
2020/12/17 08:21

Git 2.30 首个 RC 版本发布,默认分支名"master"的更名工作仍在进行

Git v2.30.0-rc0 已发布。 从 2.28 版本起,Git 开始支持对默认分支名进行配置以取代一直以来的"master"用法。对于希望把默认 Git 分支名字从"master"改为"main"或"default"的使用者而言,这个可配置的选项十分有意义。事实上,Git 项目自己本身的默认分支名字也一直在努力实现向"main"的过渡,Git 2.30 对其内部测试进行了一些更新以适应最终的更改。 除了关于对"master"默认分支进行重命名方面的工作,新版的更新内容还包括如...

15
0
发表于开发技能专区
2020/10/20 10:05

Git 2.29 稳定版发布,实验性支持更安全的 SHA-256

Git 2.29 稳定版已发布。此前发布的多个版本都在为将 Git 使用的安全哈希算法从 SHA-1 迁移至 SHA-256 做准备,2.29 版本终于实验性支持 SHA-256,可用于提升代码仓库的安全性。 在 git init 命令后面加上 --object-format=sha256 参数即可创建使用 SHA-256 的 Git 仓库。不过目前尚未支持将 Git 仓库使用的安全哈希算法从 SHA-1 升级至 SHA-256。 $ git --version git version 2.29.0 $ git init --object-format=sha256 r...

1
2
发表于开发技能专区
2020/10/12 12:17

Git 2.29-rc0 发布,恢复使用 Protocol v2 作为默认协议

Git 2.29 首个 RC 版本已发布。 早在 Git 2.26 版本中就已采用 Protocol v2 作为默认协议,不过到 Git 2.27 发布时,由于 Protocol v2 存在部分瑕疵,因此默认传输协议回滚到了之前的版本。目前 Protocol v2 已被改进,因此 Git 2.29 也已恢复使用 Protocol v2 作为默认协议。此文档概述了 Protocol v2 的改进。 另外,SHA-256 迁移计划中支持哈希的最后一步已完成,这是为 commit 哈希值提供从 SHA-1 到 SHA-256 的路径并考虑了...

2
1
2020/07/29 07:08

Git 2.28.0 发布

Git 2.28.0 现已发布,该版本更新包括有:继续进行的“master”默认分支命名工作,以及继续将 Git 使用的安全哈希算法从 SHA-1 迁移到 SHA-256 。 具体一些亮点内容如下: 在 Git 2.28 中,引入了一个新的配置选项 init.defaultBranch 来代替 hard-coded 术语。从 Git 2.28 开始,当在新存储库中创建第一个分支时,git init 将改为查找 init.defaultBranch 的值。 如果未设置该值,则 init.defaultBranch 默认为 master。 在 Gi...

3
3
发表于开发技能专区
2020/07/20 07:22

Git 2.28-rc1 发布

Git 2.28-rc1 已发布,此版本继续致力于实现最终从 SHA-1 迁移到 SHA-256 的计划。 为了更好地保护 Git 仓库的安全,防止可能出现的 SHA-1 碰撞,Git 2.28 继续为使用 SHA-256 做必要的准备。Git 2.28 并没有把精力放在赶进度上,而是努力实现一个个重要的任务 —— 例如这个版本在围绕其 CVS/SVN 接口的一些处理上下功夫。 当 Git 宣布取消将"master"用作主代码分支的默认名称时,Git 2.28 在这方面还有额外的工作要实现。在 ...

1
1
发表于软件架构专区
2020/06/03 07:31

Git 2.27.0 稳定版发布

Git 最新稳定版 2.27.0 已发布,更新内容除了继续将 Git 使用的安全哈希算法从 SHA-1 迁移到 SHA-256,还包括以下亮点: 由于存在部分瑕疵,上一版本 Git 2.26 中默认使用的 Git v2 传输协议(Transport Protocol v2)在 Git 2.27 中已被降权 与代理进行交互时,为配置 SSL 提供了新选项 Git 现在已拥有自己内置的 bug 报告工具。此工具用于生成调试信息,如内核和编译器数据以及其他关于 Git 的构建信息,以便帮助分析问题 重构...

0
6
发表于开发技能专区
2020/05/19 08:07

Git 2.27 RC0 发布

Git 2.27 首个 RC 已发布,在这个版本中,开发者仍在努力将 Git 使用的安全哈希算法从 SHA-1 迁移到 SHA-256。 Git 使用 SHA-1 的主要目的是为相同数据生成唯一地址和检查完整性 (checksum),它通过 SHA-1 生成的哈希值来识别修订版本,从而保证数据的完整性。由于 SHA-1 算法已被宣布碰撞成功,出于安全考虑,Git 的多个分支都正在积极将安全哈希算法从 SHA-1 迁移到 SHA-256。事实上,Linus 并不担心 SHA-1 碰撞成功对 Git 的...

1
2
发表于AI & 大数据专区
2020/05/13 08:45

开源协作成功的基石:用异步的方式做出决定

用微信工作,绑架了所有人的生活和时间。一场疫情过后,这种现象更为凸显,各种超过百人的大群,公司群、部门群、小组群,这些还不够,还有各类项目群、各类沟通群、各类策划群。许多人都讨厌这种状态,却不知道其背后的道理以及如果去改变这种状态。 “决定”的产生 在工作中,我们无时无刻需要进行沟通,这些沟通其实都是为了一个目的:做出决定!决定产生后,各项工作就可以按部就班地开展。所以,我们可以先来看看每一个决定...

7
23
发表于AI & 大数据专区
2020/04/13 08:20

Git 诞生 15 周年

4 月 7 日是 Git 15 周岁生日,项目主要维护者 Junio C Hamano(濱野 純)发邮件庆祝了这一日子。 Thanks all, and let's look forward to see the next 15 years be as wondreful years for Git as the past 15 years ;-) 他在邮件中主要是感谢了各种参与者,除了代码贡献者,使得可以不断更新 Git 版本,还包括通过其它形式帮助发展 Git 社区的人,比如擅长写文档的人、了解软件商标相关法律问题的专家等。 濱野純提到“专业...

18
10
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
44 评论
533 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部