13 votes

comment appliquer un patch git comme si l'auteur s'était engagé sur mon repo ?

Supposons qu'il y ait un dépôt central où les commits des dépôts satellites sont poussés à un moment donné. Le développeur A fait quelques commits sur son dépôt tandis que B en fait aussi sur le sien.

Maintenant, A veut incorporer l'un des commits de B dans son repo (auquel il ne peut pas accéder directement pour le tirer).

Une solution consiste à demander à B de créer un patch et de l'envoyer à A, mais dans ce cas, il y a deux problèmes : 1. Le patch apparaîtra comme une modification locale pour A qui devra alors le livrer (avec son propre nom). 2. Une fois que le repo central est mis à jour, les modifications seront en conflit (étant poussées par deux auteurs différents).

Existe-t-il un moyen de faire appliquer le correctif directement "en tant que commit" sur le repo local A afin qu'il apparaisse à l'utilisateur comme s'il avait été tiré du repo central (c'est-à-dire l'origine) ?

PS : (cela peut ne pas s'appliquer : voir les commentaires : existe-t-il un moyen de rayer le texte jusqu'à ce qu'il soit vérifié ?) Après quelques investigations et tests supplémentaires, il semble que git am < git-formatted-patch fasse en sorte que le patch apparaisse committé sur le master local (puis j'espère qu'il sera reconnu comme le même commit lorsque B le poussera sur le repo central). Il semble que ce soit git apply qui laisse le patch non commité...

31voto

stdcall Points 3862

git am est ce que vous recherchez. Demandez-lui de s'engager localement et de faire git format-patch . Cela créera un patch. Vous pouvez ensuite utiliser git am pour l'ajouter à votre dépôt.

5voto

qqx Points 7303

B pourrait créer et envoyer un paquet plutôt qu'un patch. Cela permet d'envoyer des commits quand aucun des transports disponibles pour push ou fetch ne fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X