Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gitignore是否阻止git提取文件?_Git_Github - Fatal编程技术网

gitignore是否阻止git提取文件?

gitignore是否阻止git提取文件?,git,github,Git,Github,gitignore文件实现的功能有以下几种描述: gitignore-指定要忽略的故意未跟踪的文件- 有时候,有些文件你不想让Git签入GitHub。有几种方法可以告诉Git忽略哪些文件。- 如果未跟踪文件并将其添加到gitignore文件中,则在提交存储库时不会将其推送到服务器 如果我在github上的存储库中有文件,并且它们被添加到.gitignore中,会发生什么。如果克隆存储库,人们会收到这些文件吗 我想提供一个默认的凭证文件,该文件将被克隆到people repository中,但如果

gitignore文件实现的功能有以下几种描述:

gitignore-指定要忽略的故意未跟踪的文件-

有时候,有些文件你不想让Git签入GitHub。有几种方法可以告诉Git忽略哪些文件。-

如果未跟踪文件并将其添加到gitignore文件中,则在提交存储库时不会将其推送到服务器

如果我在github上的存储库中有文件,并且它们被添加到.gitignore中,会发生什么。如果克隆存储库,人们会收到这些文件吗

  • 我想提供一个默认的凭证文件,该文件将被克隆到people repository中,但如果被上述人员更改,则不会被推回

  • 我想在存储库中提供一个doc文件夹,如果被克隆,则不应将其导入eclipse

  • git是否能够处理这两种情况,以及如何正确设置这两种情况?

    答案是“不”,或者“可能”,甚至是“是的,但可能不是您的思维方式”。更具体地说,
    .gitignore
    只能起到间接的作用,如果有的话。原因是您只能忽略未跟踪的文件。还有一种选择,就是告诉Git跟踪的文件应该被视为未更改。此选项根本不使用
    .gitignore
    。(我也不特别推荐

    <> P>许多关于<代码> > GiTigGNOR//COD>的描述都是模糊的,难以解释,因为它们不是从正确的基础开始的。正确的理解基础是代码> GiTigGNOR/<代码>是Git的索引,也称为STAGE区域和Cache。但是在这之前,我们需要一个更基本的项目。> 基础知识:提交、索引和工作树 首先请记住,Git存储操作单元的是提交(commit)。提交包含文件树的单个快照以及元数据(提交人和提交时间;提交描述;以及一些重要的父提交信息)。人们喜欢将Git视为存储文件,这并不是完全错误的,但事实上,Git正在存储提交,并且提交中包含文件。使用Git存储库执行操作通常意味着使用提交执行操作。请注意,所有现有提交都是只读的:您无法更改任何提交的任何内容。(您可以改为添加新提交。)

    提交或Git中的文件(通常包括存储在索引中的文件)以一种特殊的、压缩的、仅限Git的形式存储。这些文件对计算机上的几乎所有其他文件(包括您自己)都是无用的所以Git必须将它们提取到一个工作树中,就是这些工作树副本,您可以查看、编辑、用作凭证,等等

    当有人克隆一个存储库时,他们首先得到提交,通常是所有提交。他们还没有索引,也没有工作树。因此,作为
    git clone
    的最后一步,git运行
    git checkout
    来创建索引和工作树。1这个
    git checkout
    步骤选择一个特定的提交,类型为以分支名称命名的提交,如
    master
    。该提交存储一个快照—一组文件,Git现在将这些文件从提交复制到索引中,然后从索引复制到工作树中

    因此,当您第一次克隆存储库或使用
    git checkout
    干净地切换到新提交时,您拥有的是一个索引,其中包含与当前提交中相同的所有文件,以及一个工作树,其中包含与索引中相同的所有文件rom索引,因为索引以其特殊的、仅限内部的Gitty格式存储文件

    要创建新的提交,首先处理工作树中的文件,然后对部分或所有这些文件运行
    git add
    。git add所做的是将文件复制回索引(将其转换为特殊的Gitty格式)。最终,您将运行
    git commit
    ,然后获取索引中的所有内容,并使用这些内容为新提交创建快照


    1请注意,索引和工作树是成对的。如果使用
    git worktree add
    为存储库创建第二个工作树,则会创建一个新的索引以与新的工作树配合使用。由于历史原因,底层实现有点奇怪,但应始终将它们视为一种配对


    定义索引 然后,可以将索引描述为下一次提交的内容。最初,它包含当前提交中的每个文件,并用于填充工作树。随着时间的推移,您会更改存储的数据,甚至更改文件集,并根据修改后的索引进行新的提交。因此,在任何给定时间,index中有一组文件。路径为P的某个文件的索引副本通常至少会与其他两个文件副本中的一个匹配:当前提交中的P副本,或工作树中的P副本

    正如我们上面看到的,初始状态是工作树中的每个文件在索引和当前提交中都有一个副本。所有三个副本都匹配。您可以随意读取它们,但如果在工作树中更改它们,您会遇到一个有趣的情况:Git now“想要您”要
    git添加它们,请将更新的版本复制回索引,以便在下次提交时更新它们。

    工作树文件被跟踪或未跟踪 您可以自己在工作树中创建没有索引项的新文件。这样的文件称为未跟踪文件。未跟踪文件的定义是任何不在索引中的文件。如果它不在索引中,它也不会在下一次提交中

    N