小编典典

为什么“git commit”不保存我的更改?

all

我做了一个git commit -m "message"这样的:

> git commit -m "save arezzo files"
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   arezzo.txt
#       modified:   arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")

但之后,当我这样做时,git status它会显示相同的修改文件:

> git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   arezzo.txt
#       modified:   arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")

我究竟做错了什么?


阅读 130

收藏
2022-05-18

共1个答案

小编典典

正如消息所说:

没有添加到提交的更改(使用“git add”和/或“git commit -a”)

Git
有一个“暂存区”,在提交之前需要在其中添加文件,您可以在此处阅读有关它的说明

对于您的具体示例,您可以使用:

git commit -am "save arezzo files"

(注意标志中的额外内容a,也可以写成git commit -a -m "message"- 两者都做同样的事情)

或者,如果你想对提交的内容更有选择性,可以使用 git add
命令将相应的文件添加到暂存区,并使用 git status
预览即将添加的内容(记住要注意使用的措辞)。

您还可以在git 文档页面 上找到有关如何使用 git
的一般文档和教程,这将提供有关暂存/添加文件概念的更多详细信息。

另一件值得了解的事情是 交互式暂存 - 这允许您将 文件的一部分
添加到暂存区域,因此如果您进行了三个不同的代码更改(针对相关但不同的功能),您可以使用交互模式来拆分依次更改并添加/提交每个部分。像这样具有较小的特定提交可能会有所帮助。

2022-05-18