L'exécution de la commande git clone [email protected]:whatever
crée un répertoire dans mon dossier actuel, nommé quoi que ce soit, et place 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 pour qu'il apparaisse à 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?
Option A:
git clone [email protected]:whatever folder-name
Option B:
déplacez également le dossier .git.
Mieux encore:
Conservez votre copie de travail ailleurs et créez un lien symbolique.
L’exemple suivant, je pense, que beaucoup de personnes qui posent cette question sont les suivants. Si vous êtes dans le répertoire dans lequel vous voulez vider le contenu du référentiel git, lancez:
git clone [email protected]:whatever .
Le "." à la fin, spécifie le dossier en cours comme dossier de sortie.
Allez dans le dossier .. Si le dossier est vide, alors:
git clone [email protected]:whatever .
else
git init
git remote add Origin PATH/TO/REPO
git fetch
git checkout -t Origin/master
Vous clonez un référentiel avec
git clone [url]
Par exemple, si vous souhaitez cloner la bibliothèque Git Open Framework Drupal de l'Université Stanford appelée open_framework, vous pouvez le faire comme suit:
$ git clone git://github.com/SU-SWS/open_framework.git
Cela crée un répertoire nommé open_framework (à l'emplacement de votre système de fichiers local actuel), 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 que vous venez de créer, vous y verrez les fichiers du projet, prêts à être utilisés ou utilisés.
Si vous souhaitez cloner le référentiel dans un répertoire nommé autre que open_framework, vous pouvez le spécifier comme option de ligne de commande suivante:
$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme
Cette commande fait la même chose que la précédente, mais le répertoire cible s'appelle mynewtheme.
Git a 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.
Lorsque vous déplacez les fichiers à l'endroit souhaité, déplacez-vous également le répertoire .git
? 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 support, tandis que les fichiers de projet qui se trouvent dans votre répertoire /public
correspondent uniquement aux versions de la validation d'extraction actuelle (branche maître par défaut).
Cloner:
git clone [email protected]:jittre/name.git
Cloner la "branche spécifique":
git clone -b [branch-name] [email protected]:jittre/name.git
Pour cloner en Répertoire de travail actuel:
git clone https://github.com/link.git
Pour cloner en autre répertoire:
git clone https://github.com/link.git ./Folder1/Folder2
J'espère que ça aide :)
Si vous voulez cloner dans le dossier actuel, essayez ceci:
git clone https://github.com/example/example.git ./
Assurez-vous de supprimer le référentiel .git si vous essayez d'extraire un élément dans le répertoire actuel.
rm -rf .git
puis git clone https://github.com/symfony/symfony-sandbox.git
Pour cloner le référentiel Git dans un dossier spécifique, vous pouvez utiliser le paramètre -C <path>
, par exemple.
git -C /httpdocs clone [email protected]:whatever
Bien que cela crée toujours un dossier whatever
par dessus, pour cloner le contenu du référentiel dans le répertoire en cours, utilisez la syntaxe suivante:
git [email protected]:whatever .
Notez que cloner dans un répertoire existant est seulement autorisé lorsque le répertoire est vide .
Étant donné que vous clonez dans un dossier accessible au public, séparez votre référentiel Git de votre arbre de travail en utilisant le dossier --separate-git-dir=<git dir>
ou exclude .git
dans la configuration de votre serveur Web (par exemple, dans le fichier .htaccess
).
Utilisation
git clone <repository>
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.
git clone <repo> <directory>
Clonez le référentiel situé dans <référentiel> dans le dossier appelé <répertoire> sur la machine locale.
Source: Mise en place d'un référentiel _
Voici comment je le ferais, mais j'ai fait un pseudonyme pour le faire pour moi.
$ cd ~Downloads/git; git clone https:git.foo/poo.git
Il y a probablement une manière 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 fonctionner très bien pour bash ou tout autre shell comme le poisson, le xyzsh, le 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 les commandes suivantes:
$ cd ~/.oh-my-zsh/
$ cd plugins/
$ mkdir your-aliases-folder-name; cd your-aliases-folder-name
# In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases'
$ leafpad your-zsh-aliases.plugin.zsh
# Again, in my case 'ev-aliases.plugin.zsh'
Ensuite, ajoutez ces lignes au fichier alises.plugin vierge que vous venez de créer:
# Git aliases
alias gc="cd ~/Downloads/git; git clone "
(A partir de là, remplacez votre nom par le mien.)
Ensuite, pour que les alias fonctionnent, ils doivent (avec zsh) être recherchés (ou peu importe le nom). Pour ce faire, ajoutez ceci dans votre document de plugin personnalisé:
## Ev's Aliases
#### Remember to re-source zsh after making any changes with these commands:
#### These commands should also work, assuming ev-aliases have already been sourced before:
allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear"
sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh"
####
####################################
# git aliases
alias gc="cd ~/Downloads/git; git clone "
# alias gc="git clone "
# alias gc="cd /your/git/folder/or/whatever; git clone "
####################################
Sauvegardez votre plugin oh-my-zsh et lancez allsource
. Si cela ne semble pas fonctionner, lancez simplement source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh
. Cela chargera le source du plugin qui vous permettra d’utiliser désormais allsource
.
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 de points d'Ev . S'il vous plaît, n'hésitez pas à les modifier et à les améliorer pour répondre à vos besoins.
Si vous utilisez ssh
pour 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
extrairait le référentiel git pour requests
dans votre chemin /home/ubuntu/
.
Pour une raison quelconque, cette syntaxe ne se démarque pas:
git clone repo-url [folder]
Le dossier Here est un chemin facultatif menant au dossier local (qui sera un référentiel local).
Git clone
va aussi pull
code du référentiel distant dans le référentiel local. En fait c'est vrai:
git clone repo-url = git init + git remote add Origin repo-url + git pull
For Windows user
1> Open command Prompt.
2> Change the directory to destination folder (Where you want to store your project in local machine.)
3> Now go to project setting online(From where you want to clone)
4> Click on clone, and copy the clone command.
5> Now enter the same on cmd .
It will start cloning saving on the selected folder you given .
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 l'annuaire public HTML telle que proposée par BEST dans la réponse acceptée. Vous devez avoir accès aux configurations de l'hôte virtuel de votre serveur.
Il s'agit de configurer l'hôte virtuel de votre serveur Web directement vers le répertoire du référentiel. Dans Apache, vous pouvez le faire comme:
DocumentRoot/var/www/html/site web/your-git-repo
Voici un exemple de fichier d'hôte virtuel:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /path/to/your-git-repo
...
...
...
...
</VirtualHost>