如何通过git clean快速备份我想要删除的未跟踪文件?

noi*_*isy 13 git bash shell backup

我有很多未跟踪的文件.我很确定他们中的大部分都可以删除,但是......你知道,备份可能会有所帮助;)

在类似的情况下你在做什么?

Mar*_*air 27

以下命令将在您的主目录中创建目录中所有未跟踪(未忽略)文件的tar存档:

git ls-files --others --exclude-standard -z | xargs -0 tar rvf ~/backup-untracked.tar
Run Code Online (Sandbox Code Playgroud)

如果你打算使用这种技术,请仔细检查git ls-files --others --exclude-standard它自己产生你期望的文件列表!

关于此解决方案的一些注意事项可能是有序的:

  • 我用-z得到git ls-files输出文件与目录NUL(零字节)的文件之间的隔膜和-0参数来xargs告诉它要考虑NUL到无论是从标准输入读取参数之间的分隔符.这是处理文件名可能包含换行符的可能性的标准技巧,因为Linux上的文件名中不允许的唯一两个字节是NUL/.

  • 如果你有大量未跟踪的文件,那么xargstar不止一次运行该命令,所以重要的是我告诉tar你追加文件(r)而不是创建一个新的档案(c),否则后来的调用tar会覆盖创建的档案就在此之前.


Wes*_*ker 6

一般来说,如果它们有用,那么你应该检查它们!如果您现在不需要它们,请检查它们并将其删除!IE,跟踪它们作为已删除的文件.这样,如果您确定需要它们,您可以随时恢复它们.

请记住,使用版本控制系统的基本原则是"跟踪所有内容 ".小的更改,破坏的更改(在分支中)等.您永远不知道何时可能需要这些文件或更改,因此请使用您的VC系统以确保您不会丢失它们.