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)
发表了资讯
01/19 07:37

Git 2.39.1 发布,修复两个安全问题

Git 发布了维护版本 v2.39.1,以及旧版本维护 v2.38.3、v2.37.5、v2.36.4、v2.35.6、v2.34.6、v2.33.6、v2.32.5、v2.31.6 和 v2.30.7 。这些维护版本是为了解决安全问题 CVE-2022-41903 和 CVE-2022-23521。 CVE-2022-41903: git log 能够使用带有 --format 说明符的任意格式显示提交。 这个功能也通过 export-subst gitattribute 暴露给 git archive。 处理填充运算符时(例如,%<(、%<|(、%>(、%>>( 或 %><( ),整数溢出可能...

0
0
发表了资讯
2022/12/14 07:15

Git 2.39 正式发布

Git 2.39 已正式发布。 新版本主要变化包括: 为git shortlog命令添加更灵活的--group选项 该选项支持按作者或提交者以外的字段对 commit 进行分组,例如 $ git shortlog -ns --group=author --group=trailer:co-authored-by 优化稀疏索引 (sparse index) 性能 Git 2.39 在稀疏索引方面的性能有了显著增强,比之前的版本提升了大约 70%。 优化 connectivity check 性能 在一个拥有近 700 万个引用的测试存储库中,Git 2.39 的...

0
1
发表了资讯
2022/10/20 07:01

Git 2.38.1 发布,解决安全问题

Git 2.38.1 现已发布,同时发布的还有旧版本的更新,包括 v2.30.6、v2.31.5、v2.32.4、v2.33.5、v2.34.5、v2.35.5、v2.36.3 和 v2.37.4。这些维护版本主要是为了解决新发现的两个安全问题 CVE-2022-39253 和 CVE-2022-39260。 第一个与 --local 克隆优化有关,导致从恶意存储库克隆时,$GIT_DIR 中可能出现任意文件。另一个漏洞是关于传递给 git shell 子命令的命令字符串过长,最终可能导致任意堆写入和远程代码执行。 具体为:...

0
1
发表了资讯
2022/10/12 08:33

建议弃用 C/C++ 后,Azure CTO 再怼 Git:最不直观、最笨重

继呼吁停用 C/C++ 开发新项目并使用 Rust 之后,Microsoft Azure CTO、Sysinternals 的主要开发者 Mark Russinovich 的一条吐槽 Git 的新社交动态又引起了广泛讨论。他表示: Git 又一次让我想拔掉我的头发。这是我使用过的所有软件中最不直观、最笨重的界面之一。 事实上,Mark Russinovich 并不是第一个也不是唯一一个有此感想的人,很多人在评论表达了自己的共鸣。有人指出,“据我所知,连 Linus 都讨厌它”。其中一条高赞评...

39
9
发表了资讯
2022/10/05 07:39

Git 2.38 发布,引入巨型仓库管理工具"Scalar"

Git 2.38 已正式发布。此版本最值得关注的变化是引入微软创建的仓库管理工具 Scalar——用于处理巨型 Git 仓库。 引入巨型 Git 仓库管理工具 Scalar Scalar 是一个使用 C# 编写的 .NET Core 应用程序(后来使用 C 进行了重写),其通过设置所建议的配置值和运行后台维护来最大程度优化 Git 命令的性能。无论开发者使用什么服务来托管代码仓库,Scalar 都能有效地加速 Git 指令。微软提到,只要使用 Scalar 为体积最大的代码仓库...

4
13
发表了资讯
2022/07/14 07:02

Git for Windows 2.37.1 发布

Git for Windows 2.37.1 现已发布,主要更新内容如下: New Features 随附 Git v2.37.1。 随附 OpenSSL v1.1.1q。 随附 Git Credential Manager Core v2.0.785。 随附 tig v2.5.5。 Bug 修复 在 Windows Terminal 中运行时,在 Git for Windows 的 Bash 中粘贴大量文本通常会导致文本乱码,该问题已得到修复。 Perl 模块 perl-Clone 链接到了一个不存在的 DLL,为了解决这个问题已重建了这个模块。 Git for Windows 的安装程序不...

1
1
发表了资讯
2022/06/29 07:05

Git 2.37 正式发布,支持修剪不可达对象、稀疏索引可广泛使用

Git 2.37 已正式发布。 主要变化 新增用于修剪不可达对象 (unreachable object) 的机制 新增适用于 Windows 和 macOS 的内置文件系统监视器 稀疏索引 (sparse index) 已可以广泛使用 修剪不可达对象 在 Git 中,对象可被分类为“可达”和“不可达”。当至少有一个引用(分支或标签)时,一个对象是“可达的”,你可以从该引用开始一个对象遍历(从提交遍历到其父级,从树遍历到其子树,等等),然后在目的地结束。类似地,当不存...

1
3
发表了资讯
2022/06/29 07:01

Git for Windows 2.37.0 发布

Git for Windows 2.37.0 现已发布,主要更新内容如下: New Features 随附 Git v2.37.0。 许多反恶意软件产品似乎在我们的 MSYS2 运行时存在问题,导致运行时出现问题,例如 git subtree。添加了一种变通方法,希望能在大多数情况下有所帮助。 随附基于 Cygwin 3.3.5 的 MSYS2 运行时(Git for Windows flavor)。 随附 PCRE2 v10.40。 随附 Git LFS v3.2.0。 随附 GNU TLS v3.7.6。 SSH 的 CBC 密码在 2017 年重新启用以更好地...

0
3
发表了资讯
2022/06/21 07:13

Git 2.37-rc1 发布,新增 "git -v" & "git -h" 命令

Git 2.37 上周发布了最新 RC 版本。 2.37 没有添加“杀手锏”级别的新功能,但与之前的版本相比有许多增量工作,主要变化包括: 为 git --version 引入替代方案 git -v,以及 git --help 的替代方案 git -h 提供给外部 diff 命令的临时文件现在会在同一 basename 下的临时目录内生成 使用 C 语言重写 git add -i 功能,现在终于可以被所有用户默认使用 针对传输和打包功能进行初步的代码重构 多项性能优化,修复内存泄露问题,以...

4
1
发表了资讯
2022/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
发表了资讯
2022/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
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{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 评论
534 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部