Ich versuche also, an einem Befehl zu arbeiten, um einen Quellordner mit einer Struktur wie der folgenden zu synchronisieren:
- app.js
- .gitignore
- src/
- src/logs/
- src/logs/.gitignore
Beim ersten .gitignore würde eine Reihe von Dateien ignoriert. Typisches Zeug. Der zweite würde wie folgt aussehen:
*
!.gitignore
Diese Technik wird verwendet, wenn Sie ein Verzeichnis einchecken möchten, in dem sich keine der Dateien befindet. Es können auch mehr .gitignores im gesamten Verzeichnis vorhanden sein - dies ist nur ein Szenario. Meine Frage lautet also: Ist es möglich, dass rsync alle .gitignores relativ zu dem Verzeichnis interpretiert, in dem sie sich befinden?
Mein erster Versuch war folgender:
- Glob alle .gitignores im Verzeichnis.
- Build-Befehl, der ungefähr so aussieht:
rsync --exclude-from=.gitignore --exclude-from=src/logs/.gitignore --exclude-from=some/other/folder/.gitignore [source] [destination]
Dies funktionierte jedoch nicht wie erwartet für mich. Alles wird ignoriert, da alle Gitignore-Dateien so gelesen werden, als ob sie sich im Stammverzeichnis befinden. Gibt es eine Möglichkeit, dies zu tun, ohne nach allen .gitignores suchen zu müssen und eine Masterdatei mit neu geschriebenen Pfaden zu erstellen, die sich alle auf das Stammverzeichnis beziehen?
Vielen Dank!