07.更新文件并提交

实验

在 test.txt 文件中添加一行内容 abc,提交至版本库

# 查看仓库状态
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test.txt
# 暂存文件
$ git add test.txt

# 提交更改
$ git commit -m "Added abc to the test.txt"
[master d7f681f] Added abc to the test.txt
 1 file changed, 1 insertion(+)

git add重复操作?

test.txt 文件已经被追踪了,为什么修改之后还需要使用git add重复操作?

在上一节中,我们已经使用 git add 命令告诉 Git 追踪 test 文件,并使用 git commit 保存到了版本库。按照常理,文件已经被系统接管,文件的状态会被识别,大可不必再次重复操作。

但实际情况是,当我们对一个已经被 Git 追踪的文件进行更改时,我们需要再次使用 git add 命令。这是因为 Git 对更改的追踪是基于内容,而不仅仅是文件。这意味着,当文件的内容发生更改时,Git 视这些更改为新的内容,并需要你明确地将这些新的更改添加到暂存区。

跳过使用暂存区域

每次都需要执行暂存命令,有点繁琐,如果你希望跳过暂存区,直接将更改提交到版本库中,则可以使用以下命令:

git commit -a -m "Commit message"

在这个命令中,-a 选项参数表示自动将所有已修改的文件添加到暂存区中,并将其提交到版本控制系统中。这样就可以跳过将更改显式添加到暂存区的步骤,直接将所有更改一次性提交。

需要注意的是,在使用该命令时,只会将已修改的文件提交到版本控制系统中,而对于新添加的文件则不会生效。如果您要将新添加的文件也提交到版本控制系统中,则需要手动将其添加到暂存区(使用 git add 命令)或者使用 -a 选项参数的组合命令 git commit -am "Commit message",它相当于执行了 git add .git commit 两个命令。

尽管跳过暂存区可能会使提交更加方便快捷,但建议在进行提交前仔细检查所做的更改并确保代码能够正常运行。 这样可以避免不必要的错误和引入不良代码。

Last updated