答案 0 :(得分:5)
git提交过程分为两部分。首先,您“暂存”单个文件,然后执行“提交”命令,该命令实际上将“暂存”文件添加到存储库。因此,如果您想要“暂存”文件,首先将使用“git add”命令:
git add myfile1
您可以根据需要为多个文件执行此操作。当您调用“git status”时,您应该会看到暂存文件的列表。您可以“添加”已存储在存储库中但有更改的文件,还可以“添加”尚未存储在存储库中的文件。新文件将在分阶段区域中显示为新文件,而其他文件将在修改后出现,但是当您最终调用“git commit”时,您将提交所有已暂存的文件。 git commit的“-a”选项意味着自动暂存所有已修改的文件,并提交它们(注意:这不包括存储库中尚未存在的文件)。
以下是一个例子:
我有一个存储库,其中有两个文件:file1.txt和file2.txt 当我调用git status时,我得到以下内容:
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: file2.txt
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# file3.txt
因此,如果我想同时提交file2.txt更改和file3.txt,我可以执行以下操作:
git add file2.txt
git add file3.txt
git commit
这将提交新文件和对file2.txt进行的更改
但是,如果我使用git commit -a,则只提交file2.txt更改,并且新文件(file3.txt)将被忽略。
为了达到同样的效果,我也可以这样做:
git add file3.txt
git commit -a
在这种情况下,我不必添加更改的文件,因为提交的-a选项将处理这个问题。
注意:如果你在没有任何文件“暂停”的情况下调用git commit,则不会发生任何事情。