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

Qui*_*Par 3 git version-control

我在这里困惑 ......

你如何做一个git提交,modified file你如何做一个git提交new file

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

dre*_*wag 5

git提交过程分为两部分.首先,您"暂存"单个文件,然后执行"commit"命令,该命令实际上将"暂存"文件添加到存储库.因此,如果您想要"暂存"文件,首先您将使用"git add"命令:

git add myfile1
Run Code Online (Sandbox Code Playgroud)

您可以根据需要为多个文件执行此操作.当您调用"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
Run Code Online (Sandbox Code Playgroud)

因此,如果我想同时提交file2.txt更改和file3.txt,我可以执行以下操作:

git add file2.txt
git add file3.txt
git commit
Run Code Online (Sandbox Code Playgroud)

这将提交新文件和对file2.txt所做的更改

但是,如果我使用git commit -a,则只提交了file2.txt更改,并且将忽略新文件(file3.txt).

所以为了达到同样的效果,我也可以这样做:

git add file3.txt
git commit -a
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我不必添加更改的文件,因为提交的-a选项将负责这一点.

注意:如果您调用git commit而没有任何"staged"文件,则不会发生任何事情.