Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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_Svn_Github_Version Control - Fatal编程技术网

如何使git只提交跟踪文件

如何使git只提交跟踪文件,git,svn,github,version-control,Git,Svn,Github,Version Control,我刚开始使用git,它快把我逼疯了。如果我理解git的正确工作方式: 即使跟踪了文件,也必须将其添加到暂存池中 在提交之前 只有临时池中的文件才会提交到本地存储库 当使用“git add”将非跟踪文件添加到临时池时,它将自动成为跟踪文件 当使用“git-rm”(或“git-rm--cached”(如果我不希望从FS中删除)删除跟踪文件时,会将删除“操作”插入临时池,该操作将在下一次“git-commit”时在本地存储库中实现 然而,如果我有100个经过修改的跟踪文件,那么在准备提交时单独添加它们

我刚开始使用git,它快把我逼疯了。如果我理解git的正确工作方式:

  • 即使跟踪了文件,也必须将其添加到暂存池中 在提交之前
  • 只有临时池中的文件才会提交到本地存储库
  • 当使用“git add”将非跟踪文件添加到临时池时,它将自动成为跟踪文件
  • 当使用“git-rm”(或“git-rm--cached”(如果我不希望从FS中删除)删除跟踪文件时,会将删除“操作”插入临时池,该操作将在下一次“git-commit”时在本地存储库中实现
  • 然而,如果我有100个经过修改的跟踪文件,那么在准备提交时单独添加它们是相当乏味的。当我从树的根目录执行svn提交时,默认情况下,subversion将只提交使用“svn add”添加或使用“svn rm”删除的已修改的跟踪文件。


    所以问题是,是否有一个git命令可以执行“svn commit”的功能,也就是说,只添加并提交所有被修改或删除的跟踪的文件,而不是将树中的每个单独文件添加到暂存池?

    git add-u
    应该只添加修改和删除的文件。

    值得一提的是,这样做更好(因为它完全准确)将索引/暂存区域视为“下一次提交时要放置的内容”。当您
    git add
    git rm
    时,您正在更新索引,该索引仍然是“下一次提交时要放入的内容”。如果您在签出后没有更新它,它仍然充满了“下一次提交时要放什么”,只是其中的所有内容都与您刚签出的内容相同。只是为了让事情不那么混乱:在Git 1.x
    Git add-u
    中,在本地目录及其子目录中添加修改和删除的跟踪文件。在Git 2.x中,相同的命令
    Git add-u
    在整个树中添加修改和删除的跟踪文件,无论您在树中的哪个位置,而命令
    Git add-u.
    在您所在的目录及其所有子目录中添加所有修改和删除的跟踪文件。