Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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
Git 阿普肖特_Git_Version Control_Repository - Fatal编程技术网

Git 阿普肖特

Git 阿普肖特,git,version-control,repository,Git,Version Control,Repository,对于当前提交中但不在索引中的文件,请调用它们以将其暂存删除 分别:对于索引和/或工作树中的每个文件,将准备冻结的索引副本与工作树副本进行比较。如果这两个人匹配,什么也别说。如果它们不匹配,请说些什么:说这个文件不是为了提交而暂存的 如果有文件在索引中,但不在工作树中,git status会将它们标记为“已删除” 如果有文件在工作树中,但不在索引中。。。这就是.gitignore的用武之地。git status命令通常会抱怨这些文件未被跟踪。这毕竟是未跟踪文件的定义:它是工作树中的文件,但不在索引

对于当前提交中但不在索引中的文件,请调用它们以将其暂存删除

  • 分别:对于索引和/或工作树中的每个文件,将准备冻结的索引副本与工作树副本进行比较。如果这两个人匹配,什么也别说。如果它们不匹配,请说些什么:说这个文件不是为了提交而暂存的

    如果有文件在索引中,但不在工作树中,
    git status
    会将它们标记为“已删除”

    如果有文件在工作树中,但不在索引中。。。这就是
    .gitignore
    的用武之地。
    git status
    命令通常会抱怨这些文件未被跟踪。这毕竟是未跟踪文件的定义:它是工作树中的文件,但不在索引中

  • 然而,对于许多软件开发来说,拥有数千个未跟踪的文件是完全正常的。我们需要一种方法让Git停止抱怨他们。列出这些文件或名称模式,如
    *.o
    *.pyc
    \uuuuupycache\uuuuuu/
    ,告诉Git:不要再谈论这些未跟踪的文件了。它还有一个重要而有用的副作用,那就是告诉Git:如果我对一个装满文件的整个文件夹进行了大量添加,如果这些文件不在索引中,就不要将它们添加到索引中。这意味着您通常只需
    git add.
    即可添加所有内容:如果需要,将更新已跟踪的文件,并跟踪未被特别忽略的任何新文件

    您只需将整个文件夹中的文件移动(或复制)到您的工作树中。这些文件当前不在索引中,因此它们都将被取消跟踪。您只需将它们添加到索引中即可。不会有以前的版本,现有的提交无法更改,因为它们一直处于冻结状态,但它们将出现在您进行的下一次提交中,并从那时起继续出现在每次提交中,直到您从索引中显式删除它们为止

    在您的情况下,如果满是新文件的文件夹中有一些不应跟踪的文件,您可能需要使用
    git status
    查看哪些文件现在被列为未跟踪。如果其中一些应该保持未跟踪状态,您可以在
    .gitignore
    文件中列出它们。然后可以执行
    git添加文件夹
    操作。如果
    git status
    ,则通过显示以下内容来总结它们:

    Untracked files:
        ...
        folder/
    

    您可以运行
    git status-uall
    让git显示所有文件名,而不是将它们汇总到文件夹名中。

    什么是“将文件放在适当的位置”?回到git跟踪的工作目录树?否则,当前复制目录中的所有git命令都会出错。或者我应该在这个未跟踪的文件夹中执行git init。您在某处有一个git存储库,例如在
    /home/me/src/foo/
    中,其中有一个
    .git/
    。只需将其他文件复制到那里:
    cp-r/path/to/files/home/me/src/foo/new
    。创建一个包含所有文件副本的
    new/
    文件夹。这在Git存储库中的工作树中。所有这些文件现在都未被追踪。这个怎么样?我将所有文件从断开连接的工作文件夹(xyz/)移到foo/。然后我将一个新(旧)集克隆到该文件夹(xyz/)中。然后我将所有内容从foo/复制回来,用.git替换当前存在的同名文件(在xyz/中)。复制的文件现在会被git跟踪吗?复制的文件现在将位于git让您使用的工作树中。文件是否在Git的索引中(在
    .Git/index
    文件中)取决于Git先前签出到该工作树中的提交是否包含这些文件。同样,模型是:Git的文件是
    .Git
    ,采用Git-ish格式,您无法控制。Git让你可以随意处理你的工作树,这是你的普通电脑格式。在此工作树中,您可以随时执行任何操作。然后您可以告诉Git:请使用
    Git status
    和/或
    Git add
    查看我的工作树。您可以随时对工作树中的任何文件执行任何操作。吉特不在乎。然后告诉Git:将您存储的内容与我的工作树进行比较(
    Git status
    ),或者:从您存储的内容覆盖我的工作树中的内容(
    Git reset--hard
    ),或者:将我的工作树中的内容复制回您存储的内容(
    Git add
    )。还有一些类似的命令,但总的来说,这个想法是:你的工作树是你的折叠,纺锤,或毁伤,无论你想要什么。只需将
    .git/*
    操作留给git本身即可。