是否有一个“git cp”命令可以只复制被跟踪的文件,比如“svn cp”?

a3n*_*3nm 9 git svn

与 Subversion 不同,git 没有cp命令。对于文件,这不是问题:如果我想将文件复制ab,我可以这样做:

cp -a a b
git add b
Run Code Online (Sandbox Code Playgroud)

但是,假设我想复制一个目录d以给它另一个名称e。我仍然可以做同样的事情。但是,d可能包含git没有跟踪的文件,例如编译后的二进制文件等。在这种情况下,我不想做上面的事情,因为我不想让git跟踪这些额外的文件。

使用 Subversion,我可以做到svn cp,它只会复制和添加 Subversion 跟踪的文件。我怎样才能用 git 做到这一点?

a3n*_*3nm 1

正确的解决方案只是确保所有未跟踪的文件在.gitignore.

在这种情况下,当您复制目录并在副本上cp -Ra d e运行时,git 将足够聪明,以避免添加它忽略的文件。git add e