要在 commit(提交)之前撤销 git add,运行  git reset <file>  或  git reset 取消所有更改即可。

在旧版本的 Git 中,以上两个命令分别是 git reset HEAD <file>git reset HEAD。Git 1.8.2 做了更新。

你可以在下列文章中了解更多常用的 Git 操作:

Git 基础知识

了解 Git 项目的三个部分

Git 项目包含以下三个主要部分:

  • Git 目录
  • 工作目录(或工作树)
  • 暂存区

Git 目录(位于 YOUR-PROJECT-PATH/.git/ 中)是 Git 存储准确跟踪项目所需的所有内容的位置。这些内容包括元数据和一个对象数据库,其中包含项目文件的压缩版本。

工作目录是用户在本地对项目进行更改的地方。工作目录从 Git 目录的对象数据库中提取项目的文件,并将其放置在用户的本地计算机上。

暂存区是一个文件,用于存储下一次 commit 内容的信息。“commit” 的意思是你告诉 Git 保存暂存区的更改。 Git 照原样拍摄文件快照,并将该快照永久存储在 Git 目录中。

在三个部分中,文件可以在任何给定时间处于三种主要状态:提交,修改或暂存。在工作目录中对文件进行修改,然后,将其移至暂存区进行暂存,最后,commit 提交文件。

安装 Git

配置 Git 环境

Git 有一个 git config 工具,可用于自定义 Git 环境。你可以通过设置某些配置变量来更改 Git 的外观和功能。从计算机上的命令行界面(在 Mac 中为终端,在 Windows 中为 Command Prompt 或 Powershell)运行这些命令。

这些配置变量的存储级别分为三个级别:

  • 系统:位于 /etc/gitconfig 中,将默认设置应用于计算机的每个用户。要对此文件进行更改,需要在 git config 命令中使用 --system 选项。
  • 用户:位于 ~/.gitconfig~/.config/git/config 中,将设置应用于单个用户。要对此文件进行更改,需要在 git config命令中使用 --global 选项。
  • 项目:位于 YOUR-PROJECT-PATH/.git/config 中,仅将设置应用于项目。要对此文件进行更改,需要使用 git config 命令。

如果存在相互冲突的设置,则项目级别的配置将覆盖用户级别的配置,而用户级别的配置将覆盖系统级别的配置。

Windows 用户注意事项:Git 在 $HOME 目录(C:\Users\$USER)中查找用户级配置文件(.gitconfig)。Git 还会查找 /etc/gitconfig,尽管它是相对于 MSys 根目录(在你运行安装程序时,你决定在 Windows 系统上安装 Git 的位置)来说。如果你使用的是 Windows 2.x 或更高版本的 Git,则在 Windows XP 上的 C:\Documents and Settings\All Users\Application Data\Git\config 中,或者 Windows Vista 及更高版本上的 C:\ProgramData\Git\config 中,也有一个系统级配置文件。此配置文件只能由管理员通过 git config -f FILE 修改。

添加用户名和邮箱

Git 在 commit 时将用户名和电子邮件作为信息的一部分。你需要使用以下命令在用户级配置文件下进行设置:

git config --global user.name "My Name"
git config --global user.email "myemail@example.com"

更改文本编辑器

Git 自动使用你的默认文本编辑器,但是你可以更改它。这是一个改用 Atom 编辑器的示例(--wait  选项告诉外壳程序等待文本编辑器,以便你可以在程序继续之前在其中进行工作):

git config --global core.editor "atom --wait"

给 Git 输出添加颜色

你可以使用以下命令配置外壳,为 Git 输出添加颜色:

git config --global color.ui true

使用命令 git config --list 查看所有配置设置。

在项目中初始化 Git

在计算机上安装并配置了 Git 之后,就需要在项目中对其进行初始化,以开始使用其版本控制功能。在命令行中,使用 cd 命令导航到项目的顶级(或根)文件夹。接下来,运行命令 git init。这将安装一个 Git 目录文件夹,其中包含 Git 跟踪项目所需的所有文件和对象。

将 Git 目录安装在项目根文件夹中,这点很重要。 Git 可以跟踪子文件夹中的文件,但不会跟踪相对于 Git 目录的父文件夹中的文件。

在 Git 中获得帮助

如果你忘记了任何命令在 Git 中的工作方式,则可以通过几种方式从命令行获得 Git 帮助:

git help COMMAND
git COMMAND --help
man git-COMMAND

这将在你的 shell 窗口中显示该命令的手册页。要进行导航,请使用向上和向下箭头键滚动,或使用以下键盘快捷键:

  • f 或空格键可向前翻页
  • b 返回页面
  • q 退出

原文:How to Undo a Git Add