ホストAからホストBにgitignoredファイルをコピーする(rsync?)

ホストAからホストBにgitignoredファイルをコピーする(rsync?)

機密情報を含む複数のファイルがgitignoredされるgitリポジトリがあります。これらのファイルは、異なる深さの異なるサブディレクトリにあります。

所有者これらの文書はすべて正しい場所にあります。ストレージをホストシステムに複製しました。第二、ホストからgitignoredファイルをコピーする良い方法を探しています。

SSH経由で接続できます。到着第二、rsyncを使用してこれを行う方法があるかどうか疑問に思いますが、私が見つけたすべての例はその逆を説明します。すべてを同期します。とは別にgitignored ファイル。

ベストアンサー1

gitプロジェクトディレクトリで使用すると、git check-ignore **/*gitはすべてのファイルを無視します。

gitコマンドの出力をファイルに送信し、コマンド--files-fromのオプションを使用する必要がありますrsync。たとえば、

git check-ignore **/* > ignoredFiles
rsync -a --files-from=./ignoredFiles . host:/path/to/ignoredFiles

ポイントを指定する必要があります.rsync無視されたファイルファイル)、ソースディレクトリを表すので、gitプロジェクトのルートディレクトリになります。


このコマンドはgit check-ignore **/*私にのみ動作しますzsh(bashではなぜ動作しないのかわかりません)。ただし、このコマンドを使用すると隠しファイルには機能しないため、隠しファイルも除外するには次のようにします。

find . -exec git check-ignore {} + > ignoredFiles
rsync -a --files-from=./ignoredFiles . host:/path/to/ignoredFiles

無視されたファイルをいくつかのファイルにリダイレクトし、 --files-from を使用して読み込むのは安全です。空白のあるファイル名は正しくコピーされるためです(ただし、他の特殊ファイル名についてはわかりません)。

おすすめ記事