5

我尝试使用 rsync --filter=':+ .gitignore'-/exclude 有效但不包括)无济于事。

基本上我只想将 .ignore 文件包含在脚本中,并将其中的所有内容与 rsync 一起上传到远程。

如果有人有能力将 sed 或 awk .gitignore 放入适合包含--filter='merge file' 等的文件中,我将不胜感激!

或者另一种方法只是让 rsync 理解 .gitignore 以包含在内。

https://www.kernel.org/pub/software/scm/git/docs/gitignore.html '模式格式'

http://linux.die.net/man/3/fnmatch

https://git.samba.org/?p=rsync.git;a=blob_plain;f=wildtest.txt;hb=HEAD

https://git.samba.org/?p=rsync.git;a=blob_plain;f=wildtest.c;hb=HEAD

rsync 中的某些问题bla/仅表示该目录,bla/*仅表示该目录中的文件,bla/**仅表示该目录下的所有内容(包括子目录),bla/***最后表示 bla 及其所有内容,但所有 git 可能拥有的是bla/

排除规则似乎兼容。

4

3 回答 3

2

也许是这样的:(再次,未经测试)

git ls-files -oz | rsync --include-from=- --from0
于 2013-05-27T02:47:01.540 回答
1

我建议使用gsync而不是rsync. 我写它是因为:

我有一个具有以下特点的项目:

  • .gitignore目录中的 60+ 行长
  • 有4个子目录有自己的.gitignore
  • 某些.gitignore文件包含带有!-style 异常的行

我尝试了其他答案中的方法。有些人很有希望,但最终我遇到了discarding over-long filter错误。所以我写了gsync作为一个包装脚本rsync来正确处理.gitignore文件(在子目录中,支持!-style 异常。我想你会发现它很有帮助。

于 2015-09-23T21:59:04.380 回答
-2

考虑一下:(未经测试)

rsync --include=.gitignore

这就是手册页所说的,尽管 git 的忽略文件更高级,为您提供了注释行和“未忽略的忽略文件”的选项,上述命令不尊重这些。

您的 .gitignore 文件有多复杂,至关重要的是......它会忽略 .gitignore 文件吗?

于 2013-05-27T02:23:14.503 回答