Heroku ha una politica di ignorare tutti i rami tranne "padrone".
Mentre sono sicuro che i progettisti di Heroku hanno eccellenti ragioni per questa politica (sto indovinando per l'ottimizzazione dello storage e delle prestazioni), la conseguenza per me come sviluppatore è che qualunque ramo di argomento locale su cui sto lavorando, vorrei un modo semplice per passare il master di Heroku a quel ramo di argomento locale e fare un "git push heroku -f" per sovrascrivere il master su Heroku.
Quello che ho ottenuto leggendo la sezione "Pushing Refspecs" di http://progit.org/book/ch9-5.html è
git push -f heroku ramo-argomento-locale: refs / heads / master
Quello che mi piacerebbe davvero è un modo per impostarlo nel file di configurazione in modo che "git push heroku" faccia sempre quanto sopra, sostituendo il ramo dell'argomento locale con il nome di qualunque ramo attuale. Se qualcuno sa come farlo, per favore fatemelo sapere!
L'avvertenza per questo, ovviamente, è che questo è sensato solo se sono l'unico che può spingere verso quell'app / repository Heroku. Un team di test o di QA potrebbe gestire un repository di questo tipo per provare diversi rami candidati, ma dovrebbero coordinarsi in modo che siano tutti d'accordo su quale ramo stanno spingendo ad esso in un dato giorno.
Inutile dire che sarebbe anche una buona idea avere un repository remoto separato (come GitHub) senza questa limitazione per il backup di tutto. Chiamerei quella "origine" e userei "heroku" per Heroku in modo che "git push" esegua sempre il backup di tutto sull'origine, e "git push heroku" spinge qualsiasi ramo che sono attualmente sul ramo principale di Heroku, sovrascrivendolo se necessario.
Funzionerebbe?
[remoto "heroku"] url = git@heroku.com: my-app.git push = + refs / heads / *: refs / heads / master
Mi piacerebbe avere notizie da qualcuno con più esperienza prima di iniziare a sperimentare, anche se suppongo di poter creare un'app fittizia su Heroku e sperimentarla.
Per quanto riguarda il recupero, non mi interessa davvero se il repository Heroku è di sola scrittura. Ho ancora un repository separato, come GitHub, per il backup e la clonazione di tutto il mio lavoro.
Nota a piè di pagina: questa domanda è simile, ma non è la stessa della distribuzione di Good Git che usa la strategia dei rami con Heroku?