Close

git add

在 Git 或其他版本控制系统中工作时,“保存”的概念比在文字处理器或其他传统文件编辑应用中保存的流程更为细致。传统的软件表达方式“保存”与 Git 术语“提交”同义。Git 中的提交相当于“保存”。应将传统保存视为一种用于覆盖现有文件或写入新文件的文件系统操作。或者,Git 提交是一种作用于文件和目录集合的操作。

在 Git 和 SVN 中保存变更也是不同的流程。SVN 提交或“签入”是指远程推送到集中式服务器的操作。这意味着 SVN 提交需要访问互联网才能完全“保存”项目变更。Git 提交可以在本地捕获和构建,然后根据需要使用 git push-u origin 主命令推送到远程服务器。这两种方法之间的区别是架构设计之间的根本区别。Git 是分布式应用模型,而 SVN 是集中式模型。分布式应用通常更强大,因为它们不像集中式服务器那样存在单点故障。

git addgit statusgit commit 命令都组合使用,用于保存 Git 项目当前状态的快照。

Git 还有一个名为 “the stash” 的额外保存机制。stash 是一个临时存储区,用于存放尚未准备提交的变更。stash 在工作目录上运行,工作目录是三棵树中的第一个,有大量的使用选项。要了解更多信息,请访问 git stash 页面。

可以将 Git 存储库配置为忽略特定的文件或目录。这将防止 Git 保存对任何忽略内容的变更。Git 有多种管理忽略列表的配置方法。git ignore 配置在 git ignore 页面中有更详细的介绍。


git add


git add 命令将工作目录中的变更添加到暂存区域。它告诉 Git 您想在下一次提交中包含对特定文件的更新。但是,git add 并没有真正对存储库产生任何重大影响,只有在您运行 git commit 后才会真正记录变更。

结合这些命令,您还需要 git status 来查看工作目录和暂存区域的状态。

工作原理


git addgit commit 命令构成了基本的 Git 工作流程。这是每个 Git 用户需要理解的两个命令,无论他们的团队采用何种协作模式。它们是将项目版本记录到存储库历史记录中的方法。

开发项目围绕基本的编辑/暂存/提交模式进行。首先,在工作目录中编辑文件。当您准备好保存项目当前状态的副本时,您可以使用 git add 暂存变更。对暂存的快照感到满意后,您可以使用 git commit 将其提交到项目历史记录中。git reset 命令用于撤销提交或暂存的快照。

除了 git addgit commit 外,第三个命令 git push 对于完整的协作 Git 工作流程至关重要。git push 用于将提交的变更发送到远程存储库进行协作。这使其他团队成员能够访问一组已保存的变更。

git add 快照
Git 分支
相关资料

Git 分支

Bitbucket 徽标
查看解决方案

了解 Bitbucket Cloud 的 Git

不应将 git add 命令与 svn add 混淆,后者会将文件添加到存储库中。相反,git add 在更抽象的变更层面上起作用。这意味着每次修改文件时都需要调用 git add,而 svn add 只需要为每个文件调用一次。这听起来可能多余,但是这种工作流程使保持项目井然有序变得容易得多。

暂存区域


git add 命令的主要功能是将工作目录中待处理的变更提升到 git staging 区域。暂存区域是 Git 比较独特的功能之一,如果您来自 SVN(甚至是 Mercurial)背景,则可能需要一些时间来解决这个问题。将其视为工作目录和项目历史记录之间的缓冲区会有所帮助。暂存区域被认为是 Git 的“三棵树”之一,还有工作目录和提交历史记录。

暂存不必提交自上次提交以来所做的所有变更,而是在将相关变更实际提交到项目历史记录之前,将相关变更分组为高度集中的快照。这意味着您可以对不相关的文件进行各种编辑,然后返回并将它们拆分为逻辑提交,方法是将相关变更添加到暂存并逐段提交。与任何版本控制系统一样,创建原子提交很重要,这样可以轻松跟踪错误并还原变更,同时最大限度地减少对项目其余部分的影响。

常用选项


git add <file>

将所有变更暂存到 <file> 中,供下次提交。

git add <directory>

将所有变更暂存到 <directory> 中,供下次提交。

git add -p

开始交互式暂存会话,允许您选择要添加到下一次提交中的文件部分。这将为您提供大量变更并提示您输入命令。使用 y 暂存区块,n 忽略区块,s 将其拆分为较小的区块,e 用于手动编辑区块,使用 q 退出。

示例


开始一个新项目时,git add 的功能与 svn import 相同。要创建当前目录的初始提交,请使用以下两个命令:

git add .
git commit

项目启动并运行后,可以通过将路径传递给 git add 来添加新文件:

git add hello.py
git commit

上述命令也可用于记录对现有文件的变更。同样,Git 不区分新文件中的暂存变更和已添加到存储库的文件的变更。

摘要


综上所述,git add 是一系列操作中的第一个命令,它指示 Git 将当前项目状态的快照“保存”到提交历史记录中。单独使用时,git add 会将待处理的变更从工作目录提升到暂存区域。git status 命令用于检查存储库的当前状态,也可用于确认 git add 升级。git reset 命令用于撤销 git add。然后,使用 git commit 命令将暂存目录的快照提交到存储库的提交历史记录。


分享此文章
下一主题

推荐阅读

将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。

人们通过满是工具的墙进行协作

Bitbucket 博客

Devops 示意图

DevOps 学习路径

与 Atlassian 专家一起进行 Den 功能演示

Bitbucket Cloud 与 Atlassian Open DevOps 如何协同工作

注册以获取我们的 DevOps 新闻资讯

Thank you for signing up