18041 sujets
Questions générales et questions de débutants
MontBlanc a écrit :
salut, en bidouillant je crois j'y suis arrivé, par contre il y a un moyen de modifier le message d'un commit ?
J'utilise le terminal et/ou smartgit
Pour un commit :
$ git commit -m "un commentaire"
Pour modifier un commentaire d'un commit
$ git commit --amend -m "modification du commentaire"
Modifié par niuxe (27 Feb 2023 - 17:07)
J'utilise Git avec VSC au quotidien depuis quelques mois, et je préfère utiliser Git de cette façon plutôt qu'en ligne de commande uniquement. Il reste cependant quelques opérations que je préfère faire via la ligne de commande (parce que je ne connais pas leur équivalence depuis l'interface de VSC, ou si c'est une opération un peu ardue par exemple ^^)
En bref, Git avec VSC je trouve que ça facilite l'utilisation des commandes les plus courantes, comme le commit, la création et le changement de branche, ou encore le stash.
Il y a quand même quelques subtilités avec VSC, ça demande un peu d'apprentissage et ça change beaucoup nos habitudes. Pour t'aider, je te recommande cette vidéo récente de Grafikart, dédiée au sujet. Il y a tout ce qu'il faut savoir
Il y a également quelques extensions comme Git Lens, qui apportent une vraie plus-value à l'utilisation de Git avec VSC. Avec cette extension, tu as une vue graphique et détaillée du repository, et en plus, ça ajoute des raccourcis bien utiles au volet "Contrôle de code source" de VSC, comme l'édition ou la consultation des derniers commits, l'accès au stash et à leur contenu, l'état des branches... Il me semble que c'est aussi abordé dans la vidéo.
Concernant ton message et l'erreur affichée, sans savoir ce qu'a réellement renvoyé Git (tu l'aurais su en cliquant sur "afficher la sortie de commande"), on ne pourra pas t'aider ^^
En tout cas, pour faire un commit, c'est simple :
- Il suffit d'ajouter ses fichiers modifiés au stage (équivalent de git add) avec le +, qui apparait en survolant un fichier
- Une fois les fichiers ajoutés, à partir de là, tu peux saisir ton message directement dans le champ, comme tu l'as fait
- Tu fais ensuite Ctrl + Entrée, pour valider ton commit
- Tu peux ensuite envoyer tes modifs avec le bouton bleu, qui s'occupe d'actualiser ton dépot Git local avec le repo distant (git pull), puis d'envoyer le tout (git push)
Modifié par Loraga (27 Feb 2023 - 20:07)
En bref, Git avec VSC je trouve que ça facilite l'utilisation des commandes les plus courantes, comme le commit, la création et le changement de branche, ou encore le stash.
Il y a quand même quelques subtilités avec VSC, ça demande un peu d'apprentissage et ça change beaucoup nos habitudes. Pour t'aider, je te recommande cette vidéo récente de Grafikart, dédiée au sujet. Il y a tout ce qu'il faut savoir
Il y a également quelques extensions comme Git Lens, qui apportent une vraie plus-value à l'utilisation de Git avec VSC. Avec cette extension, tu as une vue graphique et détaillée du repository, et en plus, ça ajoute des raccourcis bien utiles au volet "Contrôle de code source" de VSC, comme l'édition ou la consultation des derniers commits, l'accès au stash et à leur contenu, l'état des branches... Il me semble que c'est aussi abordé dans la vidéo.
Concernant ton message et l'erreur affichée, sans savoir ce qu'a réellement renvoyé Git (tu l'aurais su en cliquant sur "afficher la sortie de commande"), on ne pourra pas t'aider ^^
En tout cas, pour faire un commit, c'est simple :
- Il suffit d'ajouter ses fichiers modifiés au stage (équivalent de git add) avec le +, qui apparait en survolant un fichier
- Une fois les fichiers ajoutés, à partir de là, tu peux saisir ton message directement dans le champ, comme tu l'as fait
- Tu fais ensuite Ctrl + Entrée, pour valider ton commit
- Tu peux ensuite envoyer tes modifs avec le bouton bleu, qui s'occupe d'actualiser ton dépot Git local avec le repo distant (git pull), puis d'envoyer le tout (git push)
Modifié par Loraga (27 Feb 2023 - 20:07)
si vous êtes sur Mac ou Windows, il y a tellement mieux… Sourcetree. Sur GNU/Linux, son équivalent est Smartgit. Sur les outils de Jetbrain tels que Pycharm ou PHPStorm, il y a un équivalent à ce que propose VSC. Mais que ce soit VSC, PHPStorm ou Pycharm sont largement moins bien que sourcetree ou Smartgit.
MontBlanc a écrit :
merci Loraga, je pense que je vais encore une fois tout supprimer et recommencer. En espérant y arriver...
Git n'est pas très facile à comprendre au début, mais persévère, c'est obligatoire de savoir l'utiliser aujourd'hui
Si tu débutes avec, je pense que c'est bien de démarrer uniquement avec la ligne de commande. Ça permet de bien appréhender l'outil et de le découvrir tel qu'il a été conçu initialement...
Loraga a écrit :
Git n'est pas très facile à comprendre au début, mais persévère, c'est obligatoire de savoir l'utiliser aujourd'hui
Si tu débutes avec, je pense que c'est bien de démarrer uniquement avec la ligne de commande. Ça permet de bien appréhender l'outil et de le découvrir tel qu'il a été conçu initialement...
J'ai refait ça ce matin, avec un peu plus de réussite, je pense avoir compris. Maintenant il faut que j'arrive à supprimer ou fusionner des commits. J'ai fait pas mal de tests, je n'ai pas très envie de recommencer du début.
Pour les autres solutions qu'on m'a donné, je suis obligé d'utiliser gît pour mon projet. Je ne peux pas choisir.
Mathieuu a écrit :
Salut,
Euh, comment ça supprimer ou fusionner des commits ?
Il faut que tu fasses gaffe à comment tu fais ça, généralement il ne faut le faire que sur des commits que tu n'as pas encore partagé (sinon cela risque de créer des conflits c'est relativement chiant à gérer )
J'ai fait pas mal de tests, je pensais pouvoir les supprimer pour avoir un repository propre
Je ne suis pas sur de ce que tu as testé, mais en gros si tu récupère un truc qui existe déjà, il ne faut généralement pas modifier les commits déjà existant.
Sinon quand tu va re push sur le lieu d'origine tu vas soit être coincé, soit devoir forcer pour écraser les modifications (et ça fera chier ensuite tous les gens qui ont fait des clones de leur coté)
Edit :
En gros il faut voir ça comme un arbre d'état :
A - B - C - D - E - F
Si tu le clones et que tu rajoutes des commits de ton coté, tu rajoutes des commits uniquement chez toi :
A - B - C - D - E - F - G - H - I - J - K -L
Tu peux ensuite modifier les commits que tu as rajouté avant de renvoyer vers l'origin pour faire des commits plus propre :
A - B - C - D - E - F - G - H - I - J - K -L => A - B - C - D - E - F - G2 - H2
Par contre il faut éviter de modifier les commits de départ :
A - B - C - D - E - F - G - H - I - J - K -L => A - B2 - E2 - G2 - H2
Ici tous les gens qui ont fait un clone chez eux (et eventuellement des commits locaux) et qui ont toujours A - B - C - D - E - F seront embêter pour pull la nouvelle version
Modifié par Mathieuu (28 Feb 2023 - 17:19)
Sinon quand tu va re push sur le lieu d'origine tu vas soit être coincé, soit devoir forcer pour écraser les modifications (et ça fera chier ensuite tous les gens qui ont fait des clones de leur coté)
Edit :
En gros il faut voir ça comme un arbre d'état :
A - B - C - D - E - F
Si tu le clones et que tu rajoutes des commits de ton coté, tu rajoutes des commits uniquement chez toi :
A - B - C - D - E - F - G - H - I - J - K -L
Tu peux ensuite modifier les commits que tu as rajouté avant de renvoyer vers l'origin pour faire des commits plus propre :
A - B - C - D - E - F - G - H - I - J - K -L => A - B - C - D - E - F - G2 - H2
Par contre il faut éviter de modifier les commits de départ :
A - B - C - D - E - F - G - H - I - J - K -L => A - B2 - E2 - G2 - H2
Ici tous les gens qui ont fait un clone chez eux (et eventuellement des commits locaux) et qui ont toujours A - B - C - D - E - F seront embêter pour pull la nouvelle version
Modifié par Mathieuu (28 Feb 2023 - 17:19)
Pourquoi vouloir les fusionner ?
Généralement, on réalise de petits commits, qui ne concernent que quelques modifications de quelques fichiers seulement. Cela permet de pouvoir les nommer et les décrire de façon concise et brève.
On travaille aussi habituellement au sein d'une branche, distincte du "main" (ou "master"), et c'est au sein de cette branche séparée que l'on poussera (ou push en anglais) l'ensemble de ces commits.
Lorsque que tu as terminé, tu peux alors fusionner la branche principale avec ta branche de travail afin d'y ajouter tes modifications.
La branche de travail en elle-même représente la totalité du travail réalisé au sein des commits qu'elle contient. Je vois un peu ça comme la fusion que tu évoques et dont tu as besoin ?
Si tu travailles directement sur "main" et que tu commit dessus, c'est effectivement plus difficile de s'organiser...
Modifié par Loraga (28 Feb 2023 - 21:22)
Généralement, on réalise de petits commits, qui ne concernent que quelques modifications de quelques fichiers seulement. Cela permet de pouvoir les nommer et les décrire de façon concise et brève.
On travaille aussi habituellement au sein d'une branche, distincte du "main" (ou "master"), et c'est au sein de cette branche séparée que l'on poussera (ou push en anglais) l'ensemble de ces commits.
Lorsque que tu as terminé, tu peux alors fusionner la branche principale avec ta branche de travail afin d'y ajouter tes modifications.
La branche de travail en elle-même représente la totalité du travail réalisé au sein des commits qu'elle contient. Je vois un peu ça comme la fusion que tu évoques et dont tu as besoin ?
Si tu travailles directement sur "main" et que tu commit dessus, c'est effectivement plus difficile de s'organiser...
Modifié par Loraga (28 Feb 2023 - 21:22)
Salut,
Mais ta branche dev elle est locale (elle n'existe que sur ton pc) ?
Si oui tu fais ce que tu veux (i.e tu reset puis tu recrée un seul commit)
Si non c'est que tu l'as déjà envoyé vers un serveur et dans ce cas la on evite (mais dans le cas present c'est pas très grave donc tu fais pareil et tu force quand tu push)
Modifié par Mathieuu (01 Mar 2023 - 11:14)
Mais ta branche dev elle est locale (elle n'existe que sur ton pc) ?
Si oui tu fais ce que tu veux (i.e tu reset puis tu recrée un seul commit)
Si non c'est que tu l'as déjà envoyé vers un serveur et dans ce cas la on evite (mais dans le cas present c'est pas très grave donc tu fais pareil et tu force quand tu push)
Modifié par Mathieuu (01 Mar 2023 - 11:14)
It makes it easier to utilise the most popular commands, such commit, create and change branches, or stash, in my opinion.
J'arrive un peu en retard. Peut être que ma réponse sera lue ?
@MontBlanc : Si tu débutes, je te conseille vivement d'utiliser la ligne de commande. Quand tu seras à l'aise avec Git, tu pourras passer à des outils qui se simplifient la vie. Au moins tu comprendras ce qui se passe. Et puis, si tu n'as pas ces outils, ce n'est pas grave.
Modifié par niuxe (08 Mar 2023 - 02:50)
@MontBlanc : Si tu débutes, je te conseille vivement d'utiliser la ligne de commande. Quand tu seras à l'aise avec Git, tu pourras passer à des outils qui se simplifient la vie. Au moins tu comprendras ce qui se passe. Et puis, si tu n'as pas ces outils, ce n'est pas grave.
Modifié par niuxe (08 Mar 2023 - 02:50)