L'exécution de la commande git clone [email protected]:whatever
crée un répertoire dans mon dossier actuel nommé whatever
et dépose le contenu du référentiel Git dans ce dossier:
/httpdocs/whatever/public
Mon problème est que j'ai besoin du contenu du référentiel Git cloné dans mon répertoire actuel afin qu'ils apparaissent à l'emplacement approprié pour le serveur Web:
/httpdocs/public
Je sais comment déplacer les fichiers après avoir cloné le référentiel, mais cela semble casser Git, et j'aimerais pouvoir mettre à jour simplement en appelant git pull
. Comment puis-je faire ceci?
git
repository
git-clone
David Smith
la source
la source
Réponses:
Option A:
Ergo, pour une
right here
utilisation:Option B:
Déplacez également le
.git
dossier. Notez que le.git
dossier est masqué dans la plupart des explorateurs de fichiers graphiques, assurez-vous donc d'afficher les fichiers masqués.La première ligne saisit tous les fichiers normaux, la deuxième ligne saisit les fichiers dot. Il est également possible de le faire sur une seule ligne en activant dotglob (ie
shopt -s dotglob
) mais c'est probablement une mauvaise solution si vous posez la question à laquelle cette réponse répond.Mieux encore:
Conservez votre copie de travail ailleurs et créez un lien symbolique. Comme ça:
Pour vous, ce serait quelque chose comme:
Qui pourrait facilement être changé pour tester si vous le vouliez, c'est-à-dire:
sans déplacer les fichiers. Ajouté
-fn
dans le cas où quelqu'un copie ces lignes (-f
est forcé,-n
évitez certaines interactions souvent indésirables avec des liens déjà existants et non existants).Si vous voulez simplement que cela fonctionne, utilisez l'option A, si quelqu'un d'autre va regarder ce que vous avez fait, utilisez l'option C.
la source
ln -s path/to/.git path/to/working/directory
L'exemple que je pense que beaucoup de gens posent cette question est le suivant. Si vous êtes dans le répertoire dans lequel vous voulez que le contenu du référentiel git soit sauvegardé, exécutez:
Le "." à la fin spécifie le dossier actuel comme dossier de retrait.
la source
ls -a
affichera tous les fichiers, y compris ceux cachés.Allez dans le dossier .. Si le dossier est vide, alors:
autre
la source
switch -t
on n'est pas clairement indiqué sur la documentation de git checkout .Clonage de référentiel Git de base
Vous clonez un référentiel avec
Par exemple, si vous souhaitez cloner la bibliothèque Git Open Framework Drupal de Stanford University appelée open_framework, vous pouvez le faire comme ceci:
Cela crée un répertoire nommé open_framework (à l'emplacement actuel de votre système de fichiers local), initialise un répertoire .git à l'intérieur, extrait toutes les données de ce référentiel et extrait une copie de travail de la dernière version. Si vous allez dans le répertoire open_framework nouvellement créé, vous y verrez les fichiers de projet, prêts à être travaillés ou utilisés.
Clonage d'un référentiel dans un dossier local spécifique
Si vous souhaitez cloner le référentiel dans un répertoire nommé autre que open_framework, vous pouvez spécifier cela comme option de ligne de commande suivante:
Cette commande fait la même chose que la précédente, mais le répertoire cible est appelé mynewtheme.
Git dispose d'un certain nombre de protocoles de transfert différents que vous pouvez utiliser. L'exemple précédent utilise le protocole git: //, mais vous pouvez également voir http (s): // ou user @ server: /path.git, qui utilise le protocole de transfert SSH.
la source
Pour cloner le référentiel git dans un dossier spécifique, vous pouvez utiliser un
-C <path>
paramètre, par exempleBien qu'il crée toujours un
whatever
dossier par-dessus, donc pour cloner le contenu du référentiel dans le répertoire actuel, utilisez la syntaxe suivante:Notez que le clonage dans un répertoire existant est uniquement autorisée lorsque le répertoire est vide .
Puisque vous clonez dans un dossier accessible au public, envisagez de séparer votre référentiel Git de votre arborescence de travail en utilisant
--separate-git-dir=<git dir>
ou en excluant le.git
dossier dans la configuration de votre serveur Web (par exemple dans un.htaccess
fichier).la source
Pour cloner vers Present Working Directory :
Pour cloner vers autre répertoire :
J'espère que cela aide :)
la source
./
au début du chemin vers le dossierLorsque vous déplacez les fichiers là où vous le souhaitez, déplacez-vous également le
.git
répertoire? Selon votre système d'exploitation et votre configuration, ce répertoire peut être masqué.Il contient le référentiel et les fichiers de prise en charge, tandis que les fichiers de projet qui se trouvent dans votre
/public
répertoire ne sont que les versions dans le commit actuellement extrait (branche principale par défaut).la source
Cloner:
Clonez la "branche spécifique":
la source
Si vous souhaitez cloner dans le dossier actuel, vous devriez essayer ceci:
la source
Usage
Clonez le référentiel situé dans le <référentiel> sur la machine locale. Le référentiel d'origine peut être situé sur le système de fichiers local ou sur une machine distante accessible via HTTP ou SSH.
Clonez le référentiel situé dans <repository> dans le dossier appelé <directory> sur la machine locale.
Source: mise en place d'un référentiel
la source
Assurez-vous de supprimer le référentiel .git si vous essayez d'extraire quelque chose dans le répertoire actuel.
rm -rf .git
puisgit clone https://github.com/symfony/symfony-sandbox.git
la source
Voici comment je le ferais, mais j'ai créé un alias pour le faire pour moi.
Il y a probablement une façon plus élégante de le faire, mais j'ai trouvé que c'était plus facile pour moi.
Voici l'alias que j'ai créé pour accélérer les choses. Je l'ai fait pour zsh, mais cela devrait très bien fonctionner pour bash ou tout autre shell comme le poisson, xyzsh, fizsh, etc.
Éditez
~/.zshrc
,/.bashrc
etc. avec votre éditeur préféré (le mien est Leafpad, donc j'écrirais$ leafpad ~/.zshrc
).Ma préférence personnelle, cependant, est de créer un plugin zsh pour garder une trace de tous mes alias. Vous pouvez créer un plugin personnel pour oh-my-zsh en exécutant ces commandes:
Ensuite, ajoutez ces lignes à votre fichier alises.plugin vierge nouvellement créé:
(À partir d'ici, remplacez votre nom par le mien.)
Ensuite, pour que les alias fonctionnent, ils (avec zsh) doivent être sourcés (ou peu importe comment cela s'appelle). Pour ce faire, dans votre document de plugin personnalisé, ajoutez ceci:
Enregistrez votre plugin oh-my-zsh et lancez-vous
allsource
. Si cela ne semble pas fonctionner, lancez simplementsource $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh
. Cela chargera la source du plugin qui vous permettraallsource
désormais de l' utiliser .Je suis en train de créer un référentiel Git avec tous mes alias. N'hésitez pas à les consulter ici: les fichiers dot d'Ev . N'hésitez pas à les bifurquer et à les améliorer pour répondre à vos besoins.
la source
Si vous utilisez
ssh
for,git cloning
vous pouvez utiliser la commande suivante.git -C path clone [email protected]:path_to_repo.git
par exemple:
git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.git
tirerait le dépôt gitrequests
vers votre/home/ubuntu/
chemin.la source
Pour une raison quelconque, cette syntaxe ne se démarque pas:
git clone repo-url [folder]
Ici, le dossier est un chemin facultatif vers le dossier local (qui sera un référentiel local).
Git codera
clone
égalementpull
du référentiel distant vers le référentiel local. En fait c'est vrai:la source
Bien que toutes les réponses ci-dessus soient bonnes, je voudrais proposer une nouvelle méthode au lieu d'utiliser la méthode du lien symbolique dans le répertoire html public comme proposé BEST dans la réponse acceptée. Vous devez avoir accès aux configurations d'hôte virtuel de votre serveur.
Il s'agit de configurer l'hôte virtuel de votre serveur Web pointant directement vers le répertoire du référentiel. Dans Apache, vous pouvez le faire comme:
Voici un exemple de fichier hôte virtuel:
la source
Vous pouvez utiliser la commande git suivante pour cloner avec un nom de répertoire personnalisé
Remarque: vous n'avez pas besoin de créer votre répertoire custome car il se créera automatiquement
la source
la source
Concernant cette ligne du post original:
Je suis capable de le faire et je ne vois aucun problème jusqu'à présent avec mes opérations d'ajout, de validation, de poussée et d'extraction.
Cette approche est indiquée ci-dessus, mais tout simplement pas décomposée en étapes. Voici les étapes qui fonctionnent pour moi:
Le dossier existant dans lequel vous venez de copier les fichiers est maintenant prêt à interagir avec git.
la source