Git提交修改和Git提交新文件之间的区别

时间:2011-03-23 03:19:17

标签: git version-control

我是confused here ...

如何为modified file执行 git commit ,如何为new file执行git提交?

另外,你如何在git中单独提交文件?

1 个答案:

答案 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,则不会发生任何事情。