问题描述
我正在观看 Coursera 的 git 课程。
有一部分我不明白老师所说的,“暂存和提交之间的单独步骤允许我们在一次提交中暂存多个更改。”
我很困惑,因为据我所知,one commit 命令会提交多个更改,而不是暂存多个更改。如果我想暂存更改,我不需要调用 git add 命令吗?
请让我知道我遗漏了什么。
解决方法
暂存和提交之间的单独步骤允许我们在一次提交中暂存多个更改。
它强调 staging(即 add
命令)和 committing 是不同的步骤,它允许在您提交之前进行多个 staging 轮次(如果需要) .
但您确实可以暂存所有内容,然后只提交一次。并没有说(甚至暗示)提交阶段性的事情。句子的主语是单独的步骤)
什么不清楚?
,如果我想暂存更改,是不是必须调用 git add 命令?
如果您想暂存并提交所有更改,您可以:
git commit -am "all changes"
但是如果你想提交一些更改,你可以通过首先将文件添加到缓存来准备下一次提交。
见“GitHowTo: Staging and committing”
git 中的暂存步骤允许您继续对工作目录进行更改,并且当您决定要与版本控制交互时,它允许您在小的提交中记录更改。
假设您编辑了三个文件(a.html
、b.html
和 c.html
)。
之后,您需要提交所有更改,以便对 a.html
和 b.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"
将暂存和提交分开,您有机会轻松自定义提交的内容。