[Git] - développement Web - deploiement

Default
,

Bonjour à tous.
Désolé si le sujet n'est pas au bon endroit, mais je ne savais pas trop où le mettre.

J'ai un petit peu touché à Git, mais n'étant pas vraiment à l'aise, j'ai un peu laissé tomber.

J'aimerai reprendre. Je demande donc quelques conseils afin de l'utiliser au mieux.

Lorsque que je fais un projet web, j'ai une structure qui resemble à ceci:
/var/sites/titre_projet_1
/var/www/titre_projet_1

Donc première intérogation, il ya deux dossiers différents un "privé" et un "public".
Est-ce qu'il vaut mieux faire un dépot git pour chaque dossier. Et donc on se retrouve avec deux dépots par projet.
Ou, faire un seul dépot par projet, mais avec des branches différentes pour chaque projet?

Je vous remercie pour votre aide.

11 Réponse

47217
,

Salut,

Le mieux est d'avoir un dépot par projet. Comme ça un git clone, un npm install/composer install/autre gestionnaire de paquet et le projet est installé (sauf si y'a des dépendances externes mais ça on ne peut rien y faire).

107977
,

J'ai la vague impression que tu ne maitrise vraiment pas git, tu parles de dépot git comme si tu en avais déjà un à la base.

Un dépot est un endroit ou tu stockes ton projet, que tu met à jour à coup de commit/push, en aucun cas un git clone ne duplique un dépot, tu ne fait juste que copier le projet sur ta machine, tu peux effectuer des modification ou en recevoir en te basant sur le dépot.

Il faut vraiment que tu regardes des vidéos et t'entrainer sur github.

Default
,

@tleb

Le mieux est d'avoir un dépot par projet. Comme ça un git clone, un npm install/composer install/autre gestionnaire de paquet et le projet est installé (sauf si y'a des dépendances externes mais ça on ne peut rien y faire).

Comment tu gères les deux dossiers séparés avec un dépot par projet? Avec le gitgnore?
Cela me parait un peux complexe.
Après, je n'utilise pas npm, n'y composer, j'ai pas de gestionnaire de paquet. Je ne voit pas le lien avec git. Comme expliqué j'ai juste un projet qui a deux dossiers avec des chemins différents.

@Fukotaku

J'ai la vague impression que tu ne maitrise vraiment pas git, tu parles de dépot git comme si tu en avais déjà un à la base.

Un dépot est un endroit ou tu stockes ton projet, que tu met à jour à coup de commit/push, en aucun cas un git clone ne duplique un dépot, tu ne fait juste que copier le projet sur ta machine, tu peux effectuer des modification ou en recevoir en te basant sur le dépot.

Oui, je sais ce que c'est qu'un dépot git. J'en ai déjà créé sur mon serveur dédié ;) Je ne suis pas à l'aise avec Git c'est vrai, d'où ce sujet. Mais j'ai conscience du fonctionnement de Git.

Je vais continuerà chercher, n'hésitez pas à donner votre point de vue.

Merci à vous.

107977
,

Je crois que tu t'explique mal, pourquoi cette question ?

Comment tu gères les deux dossiers séparés avec un dépot par projet? Avec le gitgnore?

Tes dossiers nommés du même nom titre_projet_1, c'est bien le même projet non ? tu as ton projet identique dans 2 dossiers ?
Dans ce cas ou est le problème ?

48587
,

1 dépôt = 1 projet

Pourquoi voudrais-tu créer 2 dépots pour le même projet ?
La partie "public" étant de toute manière lié d'une façon ou d'une autre à la partie "privé" non ?
Si c'est lié, pour moi, c'est le même projet donc le même dépot.

Par contre, si les 2 parties ne sont pas liés, autant les séparer en effet.

Default
,

Alors oui les deux dossiers sont liés.
Je me pose cette question, car je ne vois pas comment gérer les deux dossiers avec git sachant qu'ils ne sont pas du tout au même endroit.
/var/sites/titre_projet_1
/var/www/titre_projet_1

Et bien sûre, il peut y avoir d'autres projets:
/var/sites/titre_projet_1
/var/sites/titre_projet_2
/var/sites/titre_projet_3
/var/sites/titre_projet_x

/var/www/titre_projet_1
/var/www/titre_projet_2
/var/www/titre_projet_3
/var/www/titre_projet_x

Dans les exmples qui parle de git, souvent tout le projet se situe au même endroit. Là ce n'est pas le cas. Du coup je ne sais pas comment m'organiser avec Git. Je fais un dépot par projet, et une branche par dossier? Par exemple, une branche "mon_projet_priv" et une branche "mon_projet_pub" ?

En tout cas merci de prendre le temps pour m'aider.

NB: désolé pour la mis een page, mais ça bug complètement.

48587
,

La question qu'on se pose légitimement, c'est "pourquoi une telle arborescence ?"
Que tu sépares public/privé ne me dérange pas, mais que tu mettes tes projets sur ton ordi de cette façon me semble quand même peu pratique.

Il y a une raison particulière à cette organisation ?

Default
,

Oui, la question est légitime en effet.
Alors, j'ai toujours appris que pour des raisons de sécurité, on sépare les fichiers qui nécessite un acces dit "public" aux autres fichiers.

Je me base sur un exellent livre qui m'a bien servit à l'époque PHP5 Avance.

107977
,

Oui, @Kenor as raison, c'est pas pratique comme arborescence.

Mais de toute manière, ton projet qui se trouve dans 2 dossiers, tu peux très bien utiliser git de la même manière comme si il y en avais qu'un.
Si tu fais les modification d'un côté et que tu souhaite les avoir dans l'autre, il te suffi de faire un git pull.

48587
,

@gravefield : là dessus je suis bien d'accord, mais sur ton ordinateur, rien ne t'empeche de mettre le tout dans le même dossier.

Personnelement, c'est mon arbo

projet

  • public
  • private

Et j'envoi ensuite le public dans le www/ (si prod) et le private avant le dossier "http" pour qu'il ne soit pas accessible. (tu as aussi la possibilité d'utiliser un chemin virtuel sur ton serveur qui va renvoyer vers le dossier où se trouve tes fichiers)

Mais pour autant, sur mon ordi, c'est dans le même dossier.

Evidemment, c'est à l'outil de déploiement de faire le boulot.

Default
,

@Fukotaku
L'arborescence ne vise pas à être pratique mais plus sécurisé.
Je suis désolé mais je n'ai pas très bien suivie ton explication.

@Kenor
oui, c'est sûre que si on mets tout le projet dans un seul dossier le problème ne se pose plus.

Ce qui signifie que je dois revoir tout le chargement des fichiers, pour pouvoir versionner mon projet? Car mes include's ou require's bah moi je fais à l'ancienne :D

Je vais devoir reflechir la dessus.

Merci pour ton aide en tout cas.