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

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

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

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

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/

所属标签

可能回答问题的人

  • 红双喜经典VS中华

    1 粉丝0 提问8 回答
  • 杰西

    5 粉丝1 提问4 回答
  • 浮生长恨欢娱少

    个人站长 · 站长 (已认证)

    51 粉丝2 提问4 回答
  • 滑稽园扛把子

    Swoole Inc · PHP工程师 (已认证)

    135 粉丝0 提问4 回答

扫码关注云+社区