5

rsync --filter=':+ .gitignore' ( -/exclude は機能しますが、 include は機能しません) を使用してみましたが、役に立ちませんでした。

基本的に、スクリプトに .ignore ファイルを含め、その中のすべてを rsync でリモートにアップロードしたいだけです。

.gitignore を sed または awk して、--filter='merge file' etc に含めるのに適したファイルに変換するスキルを持っている人がいれば、とてもありがたいです!

あるいは、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 とそのすべての内容を意味しますが、git が持つ可能性のあるすべてはbla/*bla/**bla/***bla/

しかし、除外ルールは互換性があるようです。

4

3 に答える 3

1

よりもgsyncを使用することをお勧めしrsyncます。私がそれを書いた理由:

次の特徴を持つプロジェクトがあります。

  • .gitignoreルート ディレクトリの は 60 行以上あります
  • 独自のサブディレクトリが 4 つあります。.gitignore
  • 一部の.gitignoreファイルには!-style 例外のある行が含まれています

他の回答の方法を試しました。いくつかは有望でしたが、最終的にはdiscarding over-long filterエラーに遭遇しました。そこで、ファイルを適切に処理するためのラッパー スクリプトとしてgsyncを作成しました (サブディレクトリ内で、-style例外をサポートしています。役立つと思います。rsync.gitignore!

于 2015-09-23T21:59:04.380 に答える
-2

これを考慮してください:(未テスト)

rsync --include=.gitignore

それがmanページに書かれていることですが、gitの無視ファイルはもう少し高度で、コメント行のオプションと、上記のコマンドが尊重しない「無視されない無視されたファイル」を提供します。

あなたの .gitignore ファイルはどれほど複雑で、決定的に... .gitignore ファイルを無視しますか?

于 2013-05-27T02:23:14.503 に答える