与 Subversion 不同,git 没有cp命令。对于文件,这不是问题:如果我想将文件复制a到b,我可以这样做:
cp -a a b
git add b
Run Code Online (Sandbox Code Playgroud)
但是,假设我想复制一个目录d以给它另一个名称e。我仍然可以做同样的事情。但是,d可能包含git没有跟踪的文件,例如编译后的二进制文件等。在这种情况下,我不想做上面的事情,因为我不想让git跟踪这些额外的文件。
使用 Subversion,我可以做到svn cp,它只会复制和添加 Subversion 跟踪的文件。我怎样才能用 git 做到这一点?
正确的解决方案只是确保所有未跟踪的文件在.gitignore.
在这种情况下,当您复制目录并在副本上cp -Ra d e运行时,git 将足够聪明,以避免添加它忽略的文件。git add e