使用msysgit的rsync进行二进制文件

我有三个窗口框,以各种方式连接到我的networking上的一个Linux盒子(一个是本地的networking,一个是笔记本电脑,可能或可能不是本地的,另一个是我的工作桌面)。 我目前正在使用git来同步我的东西之间的大部分东西(使用Linux的盒子作为服务器),它的作品就像一个冠军。

不过,现在我还想添加我的MP3collections(12演出),以便在盒子之间高效同步。 我最初以为我可以用git来做这件事,但是看起来rsync会是一个更好的select,因为我并不需要所有的历史资料。 由于所有我现有的pipe理脚本都是在git bash(而不是cygwin)下运行,所以我希望能够从git bash中使用它(MINGW32就是它在窗口标题栏中所说的)。 我可以在Cygwin中下载并复制它,还是有更好的方法来处理它? Linux机器运行的是最新版本的Ubuntu Server版本 – 我是否需要做任何事情来启用rsync来正确工作呢?

我意识到我可能会以比需要稍微难一些的方式来做这件事,但是我也将其用作改善我的命令行技能的练习。 有什么build议么?


我可以从我的cygwin shell使用rsync,但不能从msysgit使用。 我试图从cygwin的bin文件夹复制rsync.exe到msysgit的bin文件夹,但它仍然没有find它。 有没有其他一些步骤,我需要做的安装在那里? 奇怪的是,我得到一个错误,它找不到该文件,而不是给我一个文件的依赖关系丢失的错误。

我知道这个问题不是“使用rsync for MSYS”,但我认为这是相关的:

“MinGW Shell”(以前称为“MSYS(基本系统)”)的确拥有rsync。 我正在尽可能经常使用shell / system,因为它比Cygwin小得多。 (我可能是目前唯一一个关心文件大小的人。)

“Git for Windows”/“Git Bash”可以很容易地添加rsync,因为它基于MinGW / MSYS,并且早已在邮件列表中提到过。

PS! 如果您的MinGW Shell没有rsync,只需运行“mingw-get install msys-rsync”即可添加它。

2016年3月25日更新:

Git for Windows现在使用MSYS2。 而MSYS2使用“pacman”而不是“mingw-get”来安装软件包。 不幸的是,“Git for Windows”不包括pacman …有两种select:

  1. 安装Windows SDK的Git(包括pacman)。
  2. 在MSYS2中安装Git。

最后一个选项是我最喜欢的,但它不是简化,所以第一个选项可能更容易。 希望它会被修复 。

PS! 我没有玩过MSYS2 / pacman,但看起来非常有希望。

我通过git bash假设你的意思是msysgit ,又名“git for windows”。 开始菜单选项是git bash ,它解释了你使用的名字。

首先,在这里你是正确的解雇git作为一个选项。 git做得不好的事情之一就是处理二进制文件,最后你会得到一个巨大的,臃肿的仓库。 此外,由于您不会处理更改,所以使用git的开销会使我感到过度。

其次,这听起来像你实际问的问题是,“我可以从msysgit / Windows使用rsync?” 简短的回答是,不是开箱即用的。 msysgit实际上就是窗体和函数方面的Windows命令行。 话虽如此,你有两种select:下载第三方工具来启用Windows机器上的rsync( Stack Overflow:Rsync for Windows ),或者只是使用cygwin。 真的,他们有相同的结果 – 所以它取决于你来决定哪些工作更好。

截至目前(9/7/2017),手动添加rsync支持Git for Windows环境是非常容易的,甚至不必诉诸运行Windows SDK的Git。

我偶然发现了这个post ,并没有想到在给出所有select的情况下真的可以这么容易,但是确实如此。 您只需从MSYS2软件包仓库中获取rsync软件包,然后将rsync.exe文件rsync.exe压缩到C:\Program Files\Git\usr\bin 。 一个完成。 有用。

如果你还想在ssh上使用rsync进行页面调度validation,ssh-pageant二进制文件已经安装在Git for Windows中 ,你只需要在~/.bashrc~/.bash_profile文件中添加一点点ssh-pageant用法部分和Git for Windows wiki )。 我已经修改它专门用于Windows环境的Git,并增强了一些检测丢失的套接字文件:

 # ssh-pageant allows use of the PuTTY authentication agent (Pageant) SSH_PAGEANT="$(command -v ssh-pageant)" if [ -S "$SSH_AUTH_SOCK" ]; then PAGEANT_SOCK=$SSH_AUTH_SOCK else PAGEANT_SOCK=${TEMP:-/tmp}/.ssh-pageant-$USERNAME fi if [ -x "$SSH_PAGEANT" ]; then eval $("$SSH_PAGEANT" -qra "$PAGEANT_SOCK") fi unset SSH_PAGEANT unset PAGEANT_SOCK 

我不能说其他实用程序可能会或可能无法通过手动方式安装它们,但rsync似乎工作得很好。 希望回购将保持并继续更新 – 我认为这是因为它是在官方MSYS2网站托pipe。

rsync对单向同步非常有用。 你可以在cygwin下运行rsync,也可以在Windows下运行Deltacopy

如果你想有双向同步,那就一起来看看吧

对于它的价值,我有类似的问题让cwRsync工作在msysgit下降到binpath,但尝试了很多不同的事情后,最终发现,只是更新到Git for Windows的最新版本(2.10.2)固定问题。