Considérant en fait et en droit :
1.
Les époux A._ et B._ se sont mariés le 5 septembre 2002; ils ont trois enfants: C._ (né en 2002), D._ (né en 2004) et E._ (née en 2007). Leur divorce a été prononcé le 22 mai 2017; ce jugement prévoit le maintien de l'autorité parentale en commun sur les enfants et l'attribution de la garde de fait à la mère, avec fixation d'un droit de visite usuel en faveur du père. Par arrêt du 3 octobre 2017, la Cour d'appel civile du Tribunal cantonal du canton de Neuchâtel a confirmé ce jugement.
2.
Le 15 octobre 2018, A._ a ouvert action en modification du jugement de divorce, concluant à l'attribution de la garde sur les trois enfants et au versement par la mère de pensions mensuelles pour leur entretien. Le 19 février 2019, il a sollicité des mesures provisionnelles tendant à l'attribution de la garde de fait sur l'enfant D._.
Statuant le 5 février 2020, le Tribunal civil des Montagnes et du Val-de-Ruz a rejeté la requête de mesures provisionnelles (ch. 1). Par arrêt du 5 juin 2020, la Cour d'appel civile du Tribunal cantonal du canton de Neuchâtel a rejeté l'appel du père et confirmé cette décision.
3.
Par écriture mise à la poste le 9 juillet 2020, le père exerce un recours en matière civile au Tribunal fédéral, concluant à ce que l'arrêt attaqué soit annulé et la cause renvoyée à l'autorité précédente pour audition de l'enfant D._ et nouvelle décision; il demande l'octroi de l'assistance judiciaire totale pour la procédure fédérale.
4.
Par courrier du 23 juillet 2020, le conseil du recourant a informé la Cour de céans que son mandat entendait retirer le recours.
5.
5.1. En règle générale, la partie qui retire son recours est considérée comme une partie qui succombe, de sorte qu'elle doit être en principe condamnée au paiement des frais judiciaires (art. 66 al. 1 LTF). Ceux-ci peuvent cependant être réduits, voire remis, lorsque l'affaire est réglée par un désistement, sans avoir occasionné un travail considérable au Tribunal fédéral (art. 66 al. 2 LTF); cette dernière condition est remplie en l'espèce, où le recours a été retiré quelques jours seulement après son dépôt.
5.2. La requête d'assistance judiciaire - qui n'a pas été réitérée dans la déclaration de retrait ( cf. ordonnances 4A_49/2015 du 29 avril 2015; 5A_708/2016 du 19 décembre 2016 consid. 4; 5A_787/2019 du 8 juillet 2020 consid. 3) - doit en revanche être rejetée, faute de chances de succès du recours (art. 64 al. 1 LTF).
En l'espèce, les conclusions du recours tendent au renvoi de la cause aux fins d'audition de l'enfant D._. Or, les motifs pour lesquels les juges précédents ont rejeté cette réquisition de preuve ( i.e.existence d'un conflit de loyauté et souhait de l'enfant - né en 2004 - de ne pas être entendu une nouvelle fois en justice) résistent au grief de violation des droits constitutionnels (art. 98 LTF), le recourant exposant en définitive sa propre appréciation de la situation. En outre, l'autorité cantonale n'a pas affirmé que le refus de l' audition s'imposait également parce que l'enfant a pu " faire entendre son avis par l'intermédiaire de sa curatrice de représentation "; elle a au contraire réfuté cet argument, en relevant que le premier juge n'avait pas délégué cette audition à la curatrice de représentation, mais avait entendu lui-même l'enfant avant de désigner celle-ci pour lui permettre d'être représenté et d'exprimer son point de vue dans la procédure, une telle mesure s'avérant nécessaire au sens de l'art. 299 al. 1 CPC. Dépourvu d'une réfutation conforme à l'art. 106 al. 2 LTF, le recours eût été irrecevable à cet égard (<ref-ruling> consid. 2.4).
5.3. En conclusion, il y a lieu de prendre acte du retrait du recours et de rayer la cause du rôle (art. 73 PCF, par renvoi de l'art. 71 LTF), aux frais du recourant (art. 66 al. 1 et 2 LTF).


Par ces motifs, le Tribunal fédéral ordonne :
1.
La cause est rayée du rôle par suite de retrait du recours.
2.
La requête d'assistance judiciaire du recourant est rejetée.
3.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge du recourant
4.
La présente ordonnance est communiquée aux parties, à D._ et au Tribunal cantonal du canton de Neuchâtel (Cour d'appel civile).
Lausanne, le 5 août 2020
Au nom de la IIe Cour de droit civil
du Tribunal fédéral suisse
La Juge présidant : Le Greffier :
Escher Braconi