une question JGIT-Débutant:
J'utilise JGIT pour lire un fichier (blob) à partir d'un référentiel et manipuler son contenu. Après cela, je veux écrire le nouveau contenu avec le même nom de fichier dans le référentiel comme un nouveau commit. Mais comment puis-je commettre le nouveau contenu avec jgit? P>
mon pseudo-code: p> Dois-je écrire le y a-t-il lieu dans le Web un exemple de commis avec JGIT? P> p> NewContent Code> dans un fichier et validez ce fichier avec le AddCommand et
3 Réponses :
Je pense qu'il n'y a pas d'autre moyen de commettre des données que d'utiliser le ComitéCommand (à l'exception de la fusion ou de ces opérations très spécifiques). p>
Alors, oui, vous devez modifier votre fichier, puis l'ajouter et l'ajouter (à l'aide de AddCommand et de commitCommand de l'API). P>
Ok, je vais essayer cela, car il semble être le moyen le plus simple et peut-être peut-être l'optimiser plus tard.
Vous voudrez peut-être examiner l'utilisation de BLOB dans Git. Cette technique est utilisée pour stocker la clé publique de la clé PGP lors de la signature des balises. Il semble que le contenu em> vous voulez encore doit être mis dans un fichier, mais il peut s'agir d'un fichier temporel. Le fichier n'existe pas dans le répertoire principal lorsque quelqu'un fait une traction. Ce sera une entrée dans l'arborescence comme une blob. http: //book.git -scm.com/7_raw_git.html p> Le -w code> lui indique d'écrire l'entrée avec le renvoi du hachage. P>
git hash-object -w myfile.txt
6ff87c4664981e4397625791c8ea3bbb5f2279a3
HM, très intéressant, merci. Mais je resterai avec le complément / commitcommand, car c'est maintenant le plus facile.
Oui, bien sûr, vous pouvez faire ce que vous voulez, mais n'utilisez tout simplement pas d'ajouter / commettre car ils font partie du de haut niveau fort> porcelein API qui est juste une API de commodité construite Ce que vous devez faire est de regarder la mise en œuvre du addCommand et commitcommand Pour voir comment utiliser l'API de niveau inférieur pour créer des objets blob, puis des objets d'arborescence et valider des objets. p>
Je détadais la recommandation que vous avez parfaitement Lire le chapitre 9 du livre Pro Git < / a> Pour que vous comprenez correctement à quel point Git fonctionne à bas niveau. P>
En ce qui concerne un exemple de commitcommande, je vous suggère d'avoir un coup d'œil à ma réponse Ici .
Je recommande également d'utiliser l'API de porcelaine (c.-à-d. AddCommand code>,
commitcommand code>) comme suggéré dans les réponses, mais si vous voulez vraiment vous engager sur la mouche i > Vous pouvez trouver cet article utile :: CodeAffine.com/2014/10/ 20 / git-internes