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) 发布并加入讨论🔥
发表了资讯
03/17 15:09

Git 2.49 正式发布

Git 2.49 已正式发布,带来了多项新功能和改进,主要涉及性能优化、部分克隆的历史数据填充、压缩库的更新以及 Rust 代码的初步引入。 主要变化 新版本通过改进的 name-hash v2 算法显著提升了打包性能,减少了存储空间占用。 新增的 git backfill 命令可以更高效地填充部分克隆中缺失的历史数据,提升了操作效率。 支持使用 zlib-ng 压缩库,进一步提升了压缩性能。 更新 gitk 为 zsh 提供了完成脚本更新 向 Meson 构建系统集成...

0
1
发表了资讯
02/27 17:12

Git 2.49-rc0 发布:新增 "git backfill"、增强 zlib 集成、Rust 接口

Git 维护者 Junio C Hamano 今天发布了 Git 2.49-rc0,主要变化: 引入一个名为 _git backfill 的子命令 更新 gitk 为 zsh 提供了完成脚本更新 向 Meson 构建系统集成中添加了一个“unsafe-sha1”构建旋钮 新增 Rust 外部语言接口,它是 libgit.a 的包装器 Zlib 集成增强,为能够使用 zlib-ng 构建 Git 做准备。 “git pack-objects”及其包装器“git repack”学习使用一个可选的替代路径哈希函数,以改进 delta-base 选择,从而...

1
0
发表了资讯
2024/04/02 15:10

本地多个 Git 邮箱身份,commit 的时候不方便,怎么整?

以下是有关如何管理多个 Git 身份(例如个人、工作、client1、client2)的快速提示。 我将 Git 存储库分为三个级别。我的个人项目位于一个~/sources目录中。我所有的工作项目都位于~/work.这是第一级。 2 级是客户端,例如~/work/client1。当然,第 3 级是项目存储库:~/work/client1/foo-api. 这就是我的工作目录的组织方式: /Users/garrit/work ├── client1 │ ├── foo-api │ ├── foo-ios │ ...

3
26
发表了资讯
2024/01/14 11:18

Git 开发人员讨论引入 Rust 的可能性

Git 开发人员正讨论在其代码库中使用 Rust 编程语言,以补充现有的 C 和 Python 语言的想法。 去年年底的假期我花了一些时间思考如何将 Rust 引入 Git 项目。 将 Rust 引入 Linux 内核的工作正在紧锣密鼓地进行中(见 [1]、[2])。在他们既定的目标中,我认为有几个这可能与 Git 项目潜在相关: 降低内存安全错误、数据争用、内存泄漏等风险。 得益于该语言的安全保证。 在 Rust 中重构或引入新代码时更容易(假设几乎不使用语言...

6
1
发表了资讯
2023/11/23 18:51

Git 2.43 值得关注的新特性

Git发布了最新版本 2.43,新增了许多改进和新功能。 以下是Git 2.43的部分亮点: git repack的新功能:在Git 2.43中,git repack学会了一些新技巧。git repack用于重新组织仓库中的pack文件。在这个版本中,git repack支持使用多个cruft pack,并且可以通过对象过滤器将仓库的内容拆分为多个部分。 多cruft pack:在过去,Git将无法访问的对象存储在单个cruft pack中。但是,这样做会导致在每次重新打包操作时都需要重写整个cru...

3
6
发表了资讯
2023/04/26 07:17

Git 2.40.1 发布,修复三个安全漏洞

Git 2.40.1 已发布,修复最新披露的三个新的安全漏洞。这些安全修复也针对之前的稳定系列更新,包括 Git v2.39.3、v2.38.5、v2.37.7、v2.36.6、v2.35.8、v2.34.8、v2.33.8、v2.32.7、v2.31.8和 v2.30.9。 三个 Git 安全漏洞是 CVE-2023-25652、CVE-2023-25815 和 CVE-2023-29007。 CVE-2023-25652 通过将特制的输入提供给 `git apply --reject`,工作树之外的路径可以被部分控制的内容覆盖(对应于给定补丁中被拒绝的块)。 CV...

0
0
发表了资讯
2023/03/14 08:14

Git 2.40.0 正式发布

Git 项目发布了 Git 2.40 版本,其中包含超过 88 个贡献者的功能和错误修复,其中 30 个是新贡献者。 以下为该版本部分新功能介绍: 在 Git 2.40 中,除了 Vim 之外, git jump 现在还支持 Emacs,允许使用 git jump 将位置列表填充到 Emacs 客户端。[source] 在 v2.38.0 等版本中,git cat-file 的 --batch-check 和 -s 选项都忽略了 --use-mailmap 的存在,当邮件映射重写两侧的名称/电子邮件对长度不同时,可能会导致不正确的...

0
6
发表了资讯
2023/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
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{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
登录后可查看更多优质内容
返回顶部
顶部