Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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_Gitignore - Fatal编程技术网

为什么默认情况下.gitignore不是存储库的一部分?

为什么默认情况下.gitignore不是存储库的一部分?,git,gitignore,Git,Gitignore,我已经创建了一个.gitignore文件,它一直显示在未老化的更改区域中 为什么git不自动处理这个问题,因为这是一种用于项目(repo)的配置文件?默认情况下不能成为存储库的一部分?为什么这样的行为包含在设计中?这种设计有什么用例吗 Git希望确保您知道它将跟踪的文件,而不管其类型如何。这种神经质的对程序中文件的控制使得Git(或任何其他像样的VCS)如此强大。虽然一开始很烦人,但git没有对您的文件执行“魔术”是件好事 错误的.gitignore文件可能会对存储库造成严重破坏,自动将其签入可

我已经创建了一个
.gitignore
文件,它一直显示在未老化的更改区域中

为什么git不自动处理这个问题,因为这是一种用于项目(repo)的配置文件?默认情况下不能成为存储库的一部分?为什么这样的行为包含在设计中?这种设计有什么用例吗

  • Git希望确保您知道它将跟踪的文件,而不管其类型如何。这种神经质的对程序中文件的控制使得Git(或任何其他像样的VCS)如此强大。虽然一开始很烦人,但git没有对您的文件执行“魔术”是件好事
  • 错误的
    .gitignore
    文件可能会对存储库造成严重破坏,自动将其签入可能是灾难性的
  • Git希望确保您知道它将跟踪的文件,而不管其类型如何。这种神经质的对程序中文件的控制使得Git(或任何其他像样的VCS)如此强大。虽然一开始很烦人,但git没有对您的文件执行“魔术”是件好事
  • 错误的
    .gitignore
    文件可能会对存储库造成严重破坏,自动将其签入可能是灾难性的

  • 因为随着项目中代码的更改,该文件的内容可能需要更改。这意味着您希望能够存储.gitignore文件本身的版本历史,以及组成项目的文件。这意味着您将使用普通的git命令来控制提交该文件的时间


    所以git没有别的事可做了。无论如何,您都需要使用git命令来正确地管理commit.gitignore(每次编辑它时隐式提交.gitignore并不比它在任何其他文件发生更改时隐式提交任何文件更有意义),这样做涵盖了跟踪该文件的所有使用情况。因此git不需要特别处理.gitignore。

    因为随着项目中代码的更改,该文件的内容可能需要更改。这意味着您希望能够存储.gitignore文件本身的版本历史,以及组成项目的文件。这意味着您将使用普通的git命令来控制提交该文件的时间


    所以git没有别的事可做了。无论如何,您都需要使用git命令来正确地管理commit.gitignore(每次编辑它时隐式提交.gitignore并不比它在任何其他文件发生更改时隐式提交任何文件更有意义),这样做涵盖了跟踪该文件的所有使用情况。所以git没有必要特别对待。gitignore。

    除了其他答案之外

    如果希望将被忽略的文件作为repo的一部分进行跟踪,并由签出它的其他人共享,则必须像跟踪任何其他文件一样跟踪
    .gitignore
    文件(签入并进行版本控制)


    如果不希望签入被忽略文件的列表并对其进行版本控制,请将文件名添加到repo根目录中的
    .git/info/exclude
    。该文件未签入,因此对其所做的更改不会一直显示为未分级的更改。该文件是“默认情况下存储库的一部分”,但版本与工作树中的文件不同。

    除了其他答案之外

    如果希望将被忽略的文件作为repo的一部分进行跟踪,并由签出它的其他人共享,则必须像跟踪任何其他文件一样跟踪
    .gitignore
    文件(签入并进行版本控制)


    如果不希望签入被忽略文件的列表并对其进行版本控制,请将文件名添加到repo根目录中的
    .git/info/exclude
    。该文件未签入,因此对其所做的更改不会一直显示为未分级的更改。该文件“默认情况下是存储库的一部分”,但其版本与工作树中的文件不同。

    基本上,
    .gitignore
    只是一个文件

    Git是一个非常通用的工具,没有充分的理由,它不会包含任何特殊情况。而且没有足够的理由说明为什么应该单独处理
    .gitignore
    文件


    通过这种方式,用户可以选择是否想要一个适合所有人的
    .gitignore
    ,并将其签入。或者允许每个客户端都有自己的一组被忽略的文件。

    基本上,
    .gitignore
    只是一个文件

    Git是一个非常通用的工具,没有充分的理由,它不会包含任何特殊情况。而且没有足够的理由说明为什么应该单独处理
    .gitignore
    文件


    通过这种方式,用户可以选择是否想要一个适合所有人的
    .gitignore
    ,并将其签入。或者允许每个客户端都有自己的一组被忽略的文件。

    git中至少有三种忽略文件的方法:

    • 通过排除全局忽略所有克隆/存储库:
    • 对于当前克隆/存储库,通过以下方式在本地忽略它们:
    这些设置存储在git安装/当前克隆的元数据中。它们在创建新克隆时不会被传输,因此不会在用户之间共享

    但是,人们注意到,通常他们都希望忽略相同的文件,并且希望交换被忽略文件的列表。此列表随时间变化,因此将其置于版本控制之下是合理的。而且,作为unix的一个原则,一切都是一个文件和纯文本。如果可能的话,最终会得到一个.gitingore文件。既然您有了一个存储库和一个需要在存储库的所有用户之间进行版本控制和交换的文件,为什么不简单地将该文件添加到存储库中呢?这样,您就不需要特殊的逻辑和隐藏的配置文件,一切正常

    <