【发布时间】:2019-02-01 12:19:46
【问题描述】:
对现有文件进行更改时,使用以下命令。
> git checkout myBranch
---Make code changes to myFile1.c and myFile2.c
> git add src/myFile1.c
> git add src/myFile2.c
> git commit -m "My Sample"
> git push
----Go to server
> Pull....
以上内容将对 2 个文件所做的更改拉到远程存储库。
“未跟踪”文件
我经常在本地存储库中看到“未跟踪”的文件。 据我了解,“未跟踪”文件是新插入远程存储库(并在那里被跟踪)但现在下载到我的本地存储库但尚未正式跟踪的文件。这是正确的吗?
根据研究,将“未跟踪”文件添加到本地存储库的方法似乎是执行“git add ...”。
将“git add ...”合并到上面的示例中,我得到以下内容:
> git checkout myBranch
> git add --all <-------Adding the "untracked" files.
---Make code changes to myFile1.c and myFile2.c
> git add src/myFile1.c
> git add src/myFile2.c
> git commit -m "My Sample"
> git push
----Go to server
> Pull
在最顶部的示例中,提交、推送和拉取导致 2 个修改后的文件最终被拉到远程存储库。现在在这个例子中,这不会导致我对两个文件的更改以及所有“未跟踪”文件最终都被拉到服务器上吗?
【问题讨论】:
-
git add --all添加所有包含跟踪或未跟踪的更改的文件(未暂存文件)。 -
是的,但是“添加”、“提交”、“推送”然后“拉取”不会导致所有有和没有更改的文件都被发送回远程存储库吗?
-
add将文件添加到暂存中,这是一种过滤需要提交的文件的状态。commit基本上将这些更改保存到您的本地存储库。push也将这些更改推送到远程存储库。另一方面,pull将这些更改从远程存储库拉到本地存储库。 -
所以,“add”有两个目的,一是添加未跟踪的文件,二是添加修改过的文件。如果我理解的话,“提交”足够聪明,可以知道两者之间的区别???
-
两者的用途基本相同,只是用于将待处理的文件(可以是未跟踪的文件或已修改的文件)添加到暂存文件中,稍后提交。