Comment cloner un référentiel Git dans un dossier spécifique?

Exécuter la commande git clone git@github.com:whatever crée un répertoire dans mon dossier actuel, quel qu’il soit, et dépose le contenu du repository Git dans ce dossier:

 /httpdocs/whatever/public 

Mon problème est que j’ai besoin que le contenu du référentiel Git soit cloné dans mon répertoire actuel pour qu’il apparaisse au bon endroit pour le serveur Web:

 /httpdocs/public 

Je sais comment déplacer les fichiers après avoir cloné le repository, mais cela semble briser Git, et je voudrais pouvoir mettre à jour en appelant simplement git pull . Comment puis-je faire ceci?

Option A:

 git clone git@github.com: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 que je crois que beaucoup de gens se posent est le suivant. Si vous vous trouvez dans le répertoire dans lequel vous souhaitez sauvegarder le contenu du repository git, exécutez:

 git clone git@github.com:whatever . 

Le “.” à la fin spécifie le dossier actuel en tant que dossier d’extraction.

Allez dans le dossier .. Si le dossier est vide, alors:

 git clone git@github.com:whatever . 

autre

 git init git remote add origin PATH/TO/REPO git fetch git checkout -t origin/master 

Clonage de base du référentiel Git

Vous clonez un référentiel avec

 git clone [url] 

Par exemple, si vous voulez cloner la bibliothèque de Git Open Framework de Stanford University appelée open_framework, vous pouvez le faire comme ceci:

 $ 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 nouvellement créé, vous verrez les fichiers de projet prêts à être utilisés ou utilisés.

Cloner un référentiel dans un dossier local spécifique

Si vous souhaitez cloner le référentiel dans un répertoire nommé autre chose 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 propose plusieurs protocoles de transfert 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 vers l’endroit où vous les voulez, 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 prise en charge, tandis que les fichiers de projet qui se trouvent dans votre répertoire /public ne sont que les versions de la validation d’extraction en cours (twig maître par défaut).

Cloner:

 git clone git@jittre.unfuddle.com:jittre/name.git 

Cloner la “twig spécifique”:

 git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git 

Si vous voulez cloner dans le dossier actuel, vous devriez essayer ceci:

 git clone https://github.com/example/example.git ./ 

Assurez-vous de supprimer le référentiel .git si vous essayez de vérifier quelque chose dans le répertoire en cours.

rm -rf .git puis git clone https://github.com/symfony/symfony-sandbox.git

Pour cloner le repository git dans un dossier spécifique, vous pouvez utiliser le paramètre -C , par exemple

 git -C /httpdocs clone git@github.com:whatever 

Bien que cela crée toujours un dossier whatever , pour cloner le contenu du référentiel dans le répertoire en cours, utilisez la syntaxe suivante:

 git git@github.com:whatever . 

Notez que le clonage dans un répertoire existant n’est autorisé que lorsque le répertoire est vide .

Puisque vous clonez dans un dossier accessible au public, envisagez de séparer votre repository Git de votre arborescence de travail en utilisant --separate-git-dir= ou en excluant le dossier .git dans la configuration de votre serveur Web (par exemple dans .htaccess fichier .htaccess ).

Cloner pour présenter le répertoire de travail :

clone git https://github.com/link.git

Pour cloner dans un autre répertoire :

clone git https://github.com/link.git ./Folder1/Folder2

J’espère que cela aide 🙂

Usage

 git clone  

Clonez le référentiel situé sur le 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   

Clonez le référentiel situé dans dans le dossier nommé sur la machine locale.

Source: Mise en place d’un référentiel

Voici comment je le ferais, mais j’ai créé 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 le pseudonyme que j’ai créé pour accélérer les choses. Je l’ai fait pour zsh, mais il devrait fonctionner correctement pour bash ou tout autre shell comme fish, xyzsh, fizsh, etc.

Éditez ~/.zshrc , /.bashrc , etc. avec votre éditeur favori (le mien est Leafpad, donc j’écrirais $ leafpad ~/.zshrc ).

Ma préférence personnelle, cependant, est de créer un plug-in zsh pour suivre tous mes alias. Vous pouvez créer un plugin personnel pour oh-my-zsh en lançant ces commandes:

 $ 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 à votre nouveau fichier vide alises.plugin:

 # Git aliases alias gc="cd ~/Downloads/git; git clone " 

(De là, remplacez votre nom par le mien.)

Ensuite, pour que les alias fonctionnent, ils doivent (avec zsh) être inclus (ou ce qu’ils appellent). Pour ce faire, ajoutez ceci dans votre document de plug-in 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 " #################################### 

Enregistrez votre plug-in oh-my-zsh et lancez allsource . Si cela ne semble pas fonctionner, lancez simplement la source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh . Cela va charger le source du plugin qui vous permettra d’utiliser désormais allsource .


Je suis en train de créer un repository Git avec tous mes alias. N’hésitez pas à les consulter ici: les fichiers de points de Ev . N’hésitez pas à les bricoler et à les améliorer en fonction de vos besoins.

Disons que vous voulez dans un dossier comme /stuff , mais vous créez un répertoire sous /repo/tokens/ .

Tu peux faire:

 mkdir /stuff ln -s /repo/tokens /stuff 

C’est tout. Vous avez terminé.

Si vous utilisez ssh pour le git cloning vous pouvez utiliser la commande suivante.

git -C path clone git@github.com:path_to_repo.git

Par exemple: git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git le repository git pour les requests vers votre /home/ubuntu/ path.

En ce qui concerne cette ligne du message original:

“Je sais comment déplacer les fichiers après avoir cloné le repository, mais cela semble casser”

Je suis capable de le faire et je ne vois aucun problème jusqu’à présent avec mes opérations add, commit, push et pull.

Cette approche est indiquée ci-dessus, mais ne se décompose pas en étapes. Voici les étapes qui fonctionnent pour moi:

  1. cloner le repository dans un nouveau dossier temporaire
  2. cd dans ce dossier racine que vous venez de cloner localement
  3. copier tout le contenu du dossier, y compris le répertoire /.git, dans tout dossier existant que vous aimez; (disons un projet éclipse que vous souhaitez fusionner avec votre repo)

Le dossier existant dans lequel vous venez de copier les fichiers est maintenant prêt à interagir avec git.