Bonjour tout le monde,

Voilà j'explique mon problème : jusqu'à maintenant, je travaillais mal, c'est à dire sans utiliser Git. Mais j'essaie de me corriger... J'ai créé un dépot local gitFlow dans mon dossier de travail, et un repository sur gitHub, et je pense avoir mal fait les choses car le push ne fonctionne pas.
Je crois avoir compris d'où vient mon erreur, mais avant de tout casser et refaire proprement, je souhaiterais savoir si la procédure que j'imagine est la bonne:
1) Création d'un repository (vide) sur gitHub
2) Récupération en local de ce repository (avec git clone)
3) Dans le dossier local nouvellement créé, initialisation de gitflow (git flow init)
4) Copie de tous mes fichiers existants dans le dossier local
5) Faire un git add .
6) Faire un git commit -m "First commit"
7) Faire un git push origin master
8) Et si tout va bien, commencer à travailler en local en créant des features, releases etc...

Et petite question subsidiaire... Pour la mise en production, est-il possible de le faire via github, ou je continue de le faire en ftp?

Merci par avance pour vos réponses Smiley biggrin
Modérateur
Salut Mathieu8337,

Je ne suis pas un expert git mais j l'ai déjà fait quelques fois avec github et tout les jours au boulot avec gitlab et ton process a l'air tout à fait correct.
1) qu'il soit vide ou pas, quand tu vas clone tu vas tout tirer Smiley smile C'est la même manip pour un projet existant.
sinon tout ok

Et pour la mise en prod j'en ai aucune idée ! Smiley sweatdrop Je passe la main !
Administrateur
Bonjour,

je ne suis pas expert en Git mais utilisateur depuis un bout de temps donc rien n'est sûr dans ce qui suit Smiley smile
Au point que je ne savais pas ce que faisait git flow il y a 5 minutes (je le fais à la main, probablement, pour ce qui est de la nomenclature des branches).

- avant le 1er push, vérifie qui tu es censé être avec git config https://alvinalexander.com/git/git-show-change-username-email-address (après le git flow init je suppose)
- je ne suis pas sûr qu'il faille récupérer le dépôt vide de Github avant le git flow init. Smiley confuse Teste dans un autre répertoire quelles questions sont posées… S'il demande l'URL d'un repo / upstream toussa, probablement pas nécessaire. Enfin tu peux essayer les 2 de toute façon ; en local tu peux recommencer d'une page blanche après avoir vidé un répertoire de son contenu y compris le répertoire caché .git qui contient toutes les infos.

EDIT: mise en prod > ton serveur doit lancer un script lorsqu'il se passe quelque chose sur Github et pour ça il faut un cron (surveiller périodiquement un événement externe).
J'utilise (pour les projets pro d'alsacreations.fr) ce que dew a mis en place à base de Gitlab, hook pour chaque dépôt et <snip>je suppose que Gitlab contrôle le cron du serveur</snip> ou non pas besoin vu qu'il tourne sur le même serveur qu'Apache donc je suppose qu'il lance la commande que j'indique quand… le push concerne le dépôt et la branche associées à un hook.
Modifié par Felipe (04 Feb 2020 - 09:54)
Modérateur
Felipe a écrit :

- je ne suis pas sûr qu'il faille récupérer le dépôt vide de Github avant le git flow init.


Ce n'est en effet pas très conventionnel de créer un dépôt distant puis le cloner pour débuter. C'est plutôt l'inverse en général, on crée en local et on se soucie après de où on va le mettre.

1) Se mettre dans le dossier que l'on veut transformer en dépôt git

git init
# git flow init // optionnel
git add .
git commit -m "First commit"


c'est le premier réflexe à prendre au début de chaque projet, la question du dépôt vient ensuite. À partir de là tu peux travailler et faire tes commits.
Pour le connecter au repo que tu as créé sur github: (c'est indiqué dans github après avoir créé ton projet):


git remote add origin git@github.com:Mathieu8337/Trucmachin.git
git push -u origin master


C'est plutôt une bonne pratique
Meilleure solution
Merci pour ces réponses Smiley smile
Par contre le push ne fonctionne toujours pas. J'ai vérifié avec "git config --list" que le compte est le bon, visiblement le "git remote add origin" a bien fonctionné, a priori l'authentification avec la clé SSH aussi.
Avec le push, j'ai ce message d'erreur :
upload/1580824461-75833-capture.jpg
Des idées?
Merci!
Modifié par Mathieu8337 (04 Feb 2020 - 14:54)
EDIT:
C'est bon ça marche! J'avais dû merder à un moment sur le dépot local ou le distant... Du coup j'ai supprimé le distant, supprimé le dossier .git sur le local, et ensuite recréé le distant et réinitialisé le local. Et là, magie, le push fonctionne parfaitement!
Merci tout le monde pour l'aide!

Bon par contre, pour la mise en prod auto j'ai pas encore testé... Chaque chose en son temps!
Modifié par Mathieu8337 (04 Feb 2020 - 15:46)
Modérateur
Je ne sais pas ce que tu as fait, mais apparemment la version sur github est en avance sur ta version locale. C'est pourquoi il te demande de faire un git pull, pour merger les deux versions divergentes.

D'où la méthodologie que je propose, qui devrait t'éviter ces désagréments, du moins tant que il n'y a pas une équipe sur le même projet.

EDIT: du coup ça marche Smiley smile
Modifié par kustolovic (04 Feb 2020 - 15:47)