Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git状态并传递给rsync进行内容比较_Git_Bash_Rsync - Fatal编程技术网

git状态并传递给rsync进行内容比较

git状态并传递给rsync进行内容比较,git,bash,rsync,Git,Bash,Rsync,*我是尼克斯·努布 我需要在centos/rhel上执行以下操作: 运行git status,获取那里列出的文件的输出,并将它们传递给rsync-avcn soure dir/target dir/ 我知道如何做到这两个方面,但不知道如何格式化或将从git返回的文件传递给rsync。非常感谢您的帮助。git status本身并不仅仅列出文件,它还包含一条很长的人类可读的状态消息。也许你正在寻找类似的东西 git status --porcelain | sed -n 's/^?? //p' 只

*我是尼克斯·努布

我需要在centos/rhel上执行以下操作: 运行git status,获取那里列出的文件的输出,并将它们传递给rsync-avcn soure dir/target dir/


我知道如何做到这两个方面,但不知道如何格式化或将从git返回的文件传递给rsync。非常感谢您的帮助。

git status
本身并不仅仅列出文件,它还包含一条很长的人类可读的状态消息。也许你正在寻找类似的东西

git status --porcelain | sed -n 's/^?? //p'
只获取未提交文件的列表

但一般来说,如果你能找到一种方法来生成你想要的文件列表,你可以这样做

rsync -avcn soure-dir/target-dir/ $(command-to-list-files)


当文件名中包含空格或其他特殊字符时(尽管您需要使用
xargs
选项才能正确使用此功能),当单个命令行中容纳的文件数过多时(您得到的是“命令行太长”),后者更为健壮。

。这些信息会让我走上正确的道路。谢谢@tek0011您是否创建了
$(列出文件的命令)
?我有兴趣创建一个类似的解决方案,该代码将节省我一些时间。谢谢
command-to-list-files |
xargs rsync -avcn soure-dir/target-dir/