只提供姓名,并复制该列表。

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我只想在两个版本之间得到一个更改文件列表,这很简单:

git diff -–name-only commit1 commit2 > /path/to/my/file

但是,如果我想将所有列出的文件复制到另一个地方,我应该写什么呢?我需要完全相同的目录结构来复制文件。

例如,我修改并添加了文件:

/protected/texts/file1.txt
/protected/scripts/index.php
/public/pics/pic1.png

我想加入/home/changes/所有这些更改和添加的文件:

/home/changes/protected/texts/file1.txt
/home/changes/protected/scripts/index.php
/home/changes/public/pics/pic1.png
提问于
用户回答回答于

尝试下面的命令,我已经测试过了:

$ cp -pv --parents `git diff --name-only` DESTINATION-DIRECTORY
用户回答回答于

下列各项应能正常工作:

git diff -z --name-only commit1 commit2 | xargs -0 -IREPLACE rsync -aR REPLACE /home/changes/protected/

扫码关注云+社区