在 Git 中的一次提交中进行多次更改?

问题描述

我正在观看 Coursera 的 git 课程。

有一部分我不明白老师所说的,“暂存和提交之间的单独步骤允许我们在一次提交中暂存多个更改。”

我很困惑,因为据我所知,one commit 命令会提交多个更改,而不是暂存多个更改。如果我想暂存更改,我不需要调用 git add 命令吗?

请让我知道我遗漏了什么。

解决方法

暂存和提交之间的单独步骤允许我们在一次提交中暂存多个更改。

它强调 staging(即 add 命令)和 committing 是不同的步骤,它允许在您提交之前进行多个 staging 轮次(如果需要) .

但您确实可以暂存所有内容,然后只提交一次。并没有说(甚至暗示)提交阶段性的事情。句子的主语是单独的步骤)

什么不清楚?

,

如果我想暂存更改,是不是必须调用 git add 命令?

如果您想暂存并提交所有更改,您可以:

git commit -am "all changes"

但是如果你想提交一些更改,你可以通过首先将文件添加到缓存来准备下一次提交。
见“GitHowTo: Staging and committing

git 中的暂存步骤允许您继续对工作目录进行更改,并且当您决定要与版本控制交互时,它允许您在小的提交中记录更改。

假设您编辑了三个文件(a.htmlb.htmlc.html)。
之后,您需要提交所有更改,以便对 a.htmlb.html 的更改是一次提交,而对 c.html 的更改在逻辑上与前两个文件没有关联,而是在单独的提交中完成。

理论上您可以执行以下操作:

git add a.html
git add b.html
git commit -m "Changes for a and b"

那么:

git add c.html
git commit -m "Unrelated change to c"

将暂存和提交分开,您有机会轻松自定义提交的内容。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...