我只想scp
在git存储库中被跟踪的文件。
例如,git ls-files
命令有以下输出:
$ git ls-files
someFile
src/file1.txt
src/file2.txt
anotherFile
scp
接受这样的输入:scp someFile src/file1.txt src/file2.txt anotherFile <destination>
,我可以通过使用scp $(git ls-files) <destination>
产生。这样做的问题是,它只是将所有文件转储到<destination>
中,而不维护文件夹结构。我想为此使用scp -r
,但我不知道如何过滤文件,以便仅复制使用git ls-files
命令显示的文件。也许有一些方法可以使用xargs
来实现这个…
使用rsync
git ls-files | rsync -a --files-from=- . <destination>
如果没有,可以创建一个tar
和--files-from
,在另一边使用ssh
和tar
。
如果没有,创建一个临时目录,在保留目录结构的情况下将所有文件复制到本地,并使用scp -r
复制该临时目录。