Question

L'exécution de la commande git clone git@github.com: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 cela?

Était-ce utile?

La solution

Option A:

git clone git@github.com:whatever folder-name

Ergo, pour right here utiliser:

git clone git@github.com:whatever .

Option B:

Déplacez également le dossier .git. Notez que le shopt -s dotglob dossier est caché dans la plupart des explorateurs de fichiers graphiques. Assurez-vous donc 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 saisit tous les fichiers normaux, la deuxième ligne saisit les fichiers à points. Il est également possible de le faire en une seule ligne en activant dotglob (c'est-à-dire -fn), 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 ceci:

ln -s /where/it/is/right/now /the/path/I/want/to/use

Pour vous, ce serait quelque chose comme:

ln -sfn /opt/projectA/prod/public /httpdocs/public

Ce qui pourrait facilement être changé pour tester si vous le vouliez, c'est-à-dire:

ln -sfn /opt/projectA/test/public /httpdocs/public

sans déplacer les fichiers. Ajout de -f au cas où quelqu'un copierait ces lignes (-n force, <=> évite certaines interactions souvent indésirables avec des liens déjà existants ou non existants).

Si vous voulez seulement que cela fonctionne, utilisez l'option A, si quelqu'un d'autre veut voir ce que vous avez fait, utilisez l'option C.

Autres conseils

L’exemple suivant, selon moi, suscité par de nombreuses personnes est le suivant. Si vous êtes dans le répertoire dans lequel vous souhaitez vider le contenu du référentiel git, exécutez:

git clone git@github.com: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 git@github.com:whatever .

sinon

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

Clonage du référentiel Git de base

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, procédez 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 version la plus récente. Si vous allez dans le répertoire open_framework qui vient d'être créé, vous & # 8217; vous y verrez les fichiers de projet prêts à être utilisés ou travaillé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 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 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 utilisateur @ serveur: /path.git, qui utilise le protocole de transfert SSH.

Lorsque vous déplacez les fichiers là où vous les souhaitez, 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 ne sont que les versions de la validation en cours d'extraction (branche principale par défaut).

Cloner:

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

Clonez la & "branche spécifique" & ";:

.
git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.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 git@github.com:whatever

Bien qu'il crée toujours un whatever dossier par dessus, vous devez donc utiliser la syntaxe suivante pour cloner le contenu du référentiel dans le répertoire en cours:

git git@github.com:whatever .

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

Puisque vous clonez dans un dossier accessible au public, séparez votre référentiel Git de votre arbre de travail en utilisant --separate-git-dir=<git dir> ou en excluant .git le dossier dans la configuration de votre serveur Web (par exemple, dans un fichier .htaccess).

Si vous souhaitez cloner dans le dossier actuel, essayez ceci:

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

Pour cloner vers Répertoire de travail actuel :

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

Pour cloner vers un autre répertoire :

Le clone git https://github.com/link.git ./Folder1/ Dossier2

J'espère que ça vous aidera:

Assurez-vous de supprimer le référentiel .git si vous essayez d'extraire un élément dans le répertoire en cours.

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

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: Configuration 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 existe probablement un moyen plus élégant de le faire, mais j’ai trouvé que cela é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 coquille comme le poisson, le xyzsh, le fizsh, etc.

.

Modifiez ~/.zshrc, /.bashrc, etc. avec votre éditeur préféré (le mien est Leafpad, je voudrais donc écrire $ leafpad ~/.zshrc).

Cependant, ma préférence personnelle est de créer un plug-in 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 "

(À 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 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 exécutez allsource. Si cela ne semble pas fonctionner, exécutez 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 <=> à partir de maintenant.

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 . N'hésitez pas à les modifier et à les améliorer en fonction de vos besoins.

Pour une raison quelconque, cette syntaxe ne se démarque pas:

git clone repo-url [folder]

Ce dossier est un chemin facultatif menant au dossier local (qui sera un référentiel local).

Git clone va également pull coder 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

Si vous utilisez ssh pour 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 tirerait le référentiel git pour requests sur votre /home/ubuntu/ chemin.

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 .

Je vous recommanderai de suivre le lien suivant:

https://help.github.com/en/articles/cloning-a-repository

Si vous obtenez le message d'erreur suivant lors de la commande de la commande git clone URL

fatal: unable to access 'URL': Could not resolve host: github.com

Utilisez ensuite la commande suivante pour résoudre ce problème:

git config --global --unset https.proxy

En ce qui concerne cette ligne du message d'origine:

  

& "Je sais comment déplacer les fichiers après avoir cloné le référentiel, mais cela   semble casser git & ";

Je suis capable de le faire et je ne vois aucun problème avec mes opérations d'ajout, de validation, de diffusion ou d'extraction.

Cette approche est décrite ci-dessus, mais n’est pas décomposée en étapes. Voici les étapes qui me conviennent:

  1. cloner le référentiel dans un nouveau dossier temporaire
  2. cd dans le dossier racine que vous venez de cloner localement
  3. copiez tout le contenu du dossier, y compris le répertoire /.git - dans le dossier existant de votre choix; (par exemple, un projet Eclipse que vous souhaitez fusionner avec votre référentiel)

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top