Sie können einen zweiten Zweig für die Bereitstellung bei Heroku verwalten, der keine dieser Dateien enthält, aber immer noch vom Master zusammengeführt wird. (Natürlich müssen Sie ein System für die Auflösung der Zusammenführungskonflikte erarbeiten, die Sie erhalten, wenn Sie die .ai und .psd Akten im Meister ändern).
Die spezifische Sache, die Sie fragen, ist unmöglich, aus dem einfachen Grund, dass wenn Sie drücken, übertragen Sie die genauen Commits von einem Repository zum anderen, und zwei Commits, die nicht den gleichen Baum haben per Definition unterschiedliche commits.
Tipp: Die neuesten Versionen von git haben eine --porcelain
Option für git status
, die zu analysieren gibt einfach Informationen wie „M file1“ „DU file2“ (modifiziert und unmerged/von uns gelöscht, respectively). Sie könnten einen git-merge-Wrapper für die Bereitstellung Zweig schreiben, die die Zusammenführung versucht, und bereinigt automatisch die zu erwartenden Konflikte:
git checkout deploy
if ! git merge master; then
git rm $(git status --porcelain | awk '/^DU/ {print $NF}')
fi
(Der Grund, warum ich $NF
statt $2
gedruckt ist, dass, wenn die Datei umbenannt, es‘ ll aussehen wie "DU original_name -> new_name", und die in den Arbeitsbaum platzierte Kopie wird new_name, nicht original_name.)
Natürlich könnte das Skript komplexer werden, wenn Ihre Situation ist - Sie könnten nur suchen bestimmte Erweiterungen (fügen Sie sie dem einschränkenden awk-Muster hinzu), oder erfassen Sie sogar die gesamte Ausgabe in einem Perl-Skript, so dass Sie leicht mehr Phantasie Logik ...
Es gibt keine einfache Möglichkeit, dies zu tun. Vielleicht hilft diese Antwort: http://stackoverflow.com/questions/2454661/heroku-and-github-integration-how-to-structure-the-project/2454778#2454778 – mckeed
Danke für den Kommentar. Ich denke, ich muss nur eine Arbeit (Hack) finden. –