Git的常用命令-gitadd.,gitadd-A,gitadd-u,gitadd*的区别与联系-《Java笔记》

admin 2025-10-19 01:02:18 编程 来源:ZONE.CI 全球网 0 阅读模式

Git

考查知识点

  • Git 的使用

    题解

    这几个命令在不同版本的 Git 中稍有差异。

    对于 Git Version 1.x:

  1. git add .:会将当前工作区中当前目录(包括子目录)下的所有新文件和对已有文件的改动提交至暂存区,但不包括被删除的文件。
  2. git add -ugit add --update 的简写形式,它只会监控当前整个工作区中之前已被 add 的文件,即已被跟踪(tracked)的文件,也就是只会将当前整个工作区中被修改和被删除的文件提交至暂存区。而新文件因为未被跟踪(untracked),所以不会被提交至暂存区。
  3. git add -Agit add --all 的简写形式,它会将当前整个工作区中所有的文件改动提交至暂存区,包括新增、修改和被删除的文件,不受当前所在目录限制。

注意:有些文章说 git add -A 属于 git add .git add -u 功能的合集,这是不对的。因为 git add . 只会提交当前目录(包括子目录)下的新文件和对已有文件的改动,而 git add -A 不受当前目录限制。也就是说,git add .git add -u 功能的合集只能属于 git add -A 功能的子集。总结详见下图:

Git Version 1.x 新文件 被修改的文件 被删除的文件 是否受当前所在目录限制 说明
git add -A. 将当前整个工作区中所有的文件改动提交至暂存区,包括新增、修改和被删除的文件,不受当前所在目录限制
git add . 将当前工作区中当前目录(包括子目录)下的所有新文件和对已有文件的改动提交至暂存区,但不包括被删除的文件
git add -u. 将当前整个工作区中被修改和被删除的文件提交至暂存区。而新文件因为未被跟踪(untracked),所以不会被提交至暂存区

对于 Git Version 2.x:

在 Git —version 2.x 中对 git add . 的功能做了改动,git add . 会提交当前工作区中当前目录(包括子目录)下所有的文件改动,不像在 Git —version 1.x 时那样不包括被删除的文件。Git Version 2.x 中如果想在使用 git add . 时不提交被删除的文件,可以使用 git add --ignore-removal 加上匹配符 .,即 git add --ignore-removal .git add --ignore-removal 后的匹配符是可以更换的(但不能缺省),例如 git add --ignore-removal -A 可以实现在 git add -A 时不提交被删除的文件。有些文章说在 Git —version 2.x 中 git add .git add -A 的功能变得完全相同,这是不对的。因为之前提到过,git add . 提交的文件改动受当前所在目录限制,它只会提交当前工作区中当前目录(包括子目录)下的文件改动,而 git add -A 不受当前所在目录的限制,提交的是当前整个工作区中所有的文件改动。

git add *

git add * 表示添加当前目录(包括子目录)下的所有文件改动,但不包括文件名以 . 符号开头的文件的改动。这是 Shell 命令,git 只是接收文件列表。而 git add . 的功能与 git add * 基本相同,只是 git add . 会将文件名以 . 符号开头的文件的改动也提交至暂存区。总结详见下图:

Git Version 2.x 新文件 被修改的文件 被删除的文件 是否受当前所在目录限制 说明
git add -A 将当前整个工作区中所有的文件改动提交至暂存区,包括新增、修改和被删除的文件,不受当前所在目录限制
git add . 将当前工作区中当前目录(包括子目录)下的所有的文件改动提交至暂存区,包括新增、修改和被删除的文件
git add -u. 将当前整个工作区中被修改和被删除的文件提交至暂存区。而新文件因为未被跟踪(untracked),所以不会被提交至暂存区
git add * 将当前工作区中当前目录(包括子目录)下的所有的文件改动提交至暂存区,包括新增、修改和被删除的文件,但不包括文件名以 . 符号开头的文件的改动
以太坊cppgolang区别 编程

以太坊cppgolang区别

以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
progolang 编程

progolang

Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
golangn个发送者 编程

golangn个发送者

Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
golang技能图谱 编程

golang技能图谱

从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
评论:0   参与:  7