L'exécution de la commande git clone [email protected]:whatever
crée un répertoire dans mon dossier courant nommé n'importe quoi, et dépose le contenu du dépôt Git dans ce dossier :
/httpdocs/whatever/public
Mon problème est que j'ai besoin que le contenu du dépôt Git soit cloné dans mon répertoire actuel afin qu'il apparaisse à l'endroit approprié pour le serveur web :
/httpdocs/public
Je sais comment déplacer les fichiers après avoir cloné le dépôt, mais cela semble casser Git, et j’aimerais pouvoir mettre à jour simplement en appelant git pull
. Comment puis-je faire cela ?
Option A:
git clone [email protected]:whatever folder-name
Ergo, pour une utilisation "ici même" :
git clone [email protected]:whatever .
Option B:
Déplacez également le dossier .git
. Notez que le dossier .git
est caché dans la plupart des explorateurs de fichiers graphiques, donc assurez-vous de montrer les fichiers cachés.
mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/
La première ligne récupère tous les fichiers normaux, la deuxième ligne récupère les fichiers à points. Il est également possible de le faire en une seule ligne en activant dotglob (i.e. shopt -s dotglob
) mais c'est probablement une mauvaise solution si vous posez la question à laquelle cette réponse répond.
Mieux encore:
Gardez votre copie de travail ailleurs, et créez un lien symbolique. Comme ceci :
ln -s /where/it/is/right/now /the/path/I/want/to/use
Dans votre cas, ce serait quelque chose comme :
ln -sfn /opt/projectA/prod/public /httpdocs/public
Ce qui pourrait facilement être changé en test si vous le souhaitiez, c'est-à-dire :
ln -sfn /opt/projectA/test/public /httpdocs/public
sans déplacer les fichiers. Ajouté -fn
au cas où quelqu'un copierait ces lignes (-f
est la force, -n
évite certaines interactions souvent non désirées avec des liens déjà existants ou non).
Si vous voulez juste que ça marche, utilisez l'option A, si quelqu'un d'autre va regarder ce que vous avez fait, utilisez l'option C.
L'exemple que je pense que beaucoup de personnes posant cette question recherchent est le suivant. Si vous êtes dans le répertoire dans lequel vous voulez que le contenu du dépôt git soit vidé, exécutez :
git clone [email protected]:whatever .
Le " ;." ; à la fin spécifie le dossier actuel comme dossier de sortie.
Lorsque vous déplacez les fichiers là où vous le souhaitez, déplacez-vous également le répertoire .git
? En fonction de votre système d'exploitation et de votre configuration, ce répertoire peut être caché.
Il contient le repo et les fichiers de support, alors que les fichiers du projet qui sont dans votre répertoire /public
sont seulement les versions dans le commit actuellement check-out (branche master par défaut).