Pregunta

Ejecutar el comando git clone git@github.com:whatever crea un directorio en mi carpeta actual llamado lo que sea, y coloca el contenido del repositorio de Git en esa carpeta:

/httpdocs/whatever/public

Mi problema es que necesito el contenido del repositorio de Git clonado en mi directorio actual para que aparezcan en la ubicación adecuada para el servidor web:

/httpdocs/public

Sé cómo mover los archivos después de haber clonado el repositorio, pero esto parece romper Git, y me gustaría poder actualizar simplemente llamando a git pull. ¿Cómo puedo hacer esto?

¿Fue útil?

Solución

Opción A:

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

Ergo, para right here uso:

git clone git@github.com:whatever .

Opción B:

Mueva la carpeta .git también. Tenga en cuenta que la carpeta shopt -s dotglob está oculta en la mayoría de los exploradores de archivos gráficos, así que asegúrese de mostrar los archivos ocultos.

mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/

La primera línea toma todos los archivos normales, la segunda línea toma los archivos de puntos. También es posible hacerlo en una línea habilitando dotglob (es decir, -fn) pero esa es probablemente una mala solución si hace la pregunta que responde esta respuesta.

Mejor aún:

Guarde su copia de trabajo en otro lugar y cree un enlace simbólico. Así:

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

Para usted, esto sería algo así como:

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

Que fácilmente se puede cambiar para probar si lo desea, es decir:

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

sin mover archivos. Se agregó -f en caso de que alguien esté copiando estas líneas (-n es forzado, <=> evite algunas interacciones a menudo no deseadas con enlaces ya existentes o no existentes).

Si solo quieres que funcione, usa la Opción A, si alguien más va a ver lo que has hecho, usa la Opción C.

Otros consejos

El ejemplo que creo que mucha gente hace esta pregunta es este. Si está en el directorio al que desea volcar el contenido del repositorio de git, ejecute:

git clone git@github.com:whatever .

El ". " al final especifica la carpeta actual como la carpeta de pago.

Vaya a la carpeta .. Si la carpeta está vacía, entonces:

git clone git@github.com:whatever .

más

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

Clonación básica del repositorio de Git

Clonas un repositorio con

git clone [url]

Por ejemplo, si desea clonar la biblioteca Git de Marco Abierto de Drupal de la Universidad de Stanford llamada open_framework, puede hacerlo así:

$ git clone git://github.com/SU-SWS/open_framework.git

Eso crea un directorio llamado open_framework (en su ubicación actual del sistema de archivos local), inicializa un directorio .git dentro de él, extrae todos los datos para ese repositorio y extrae una copia de trabajo de la última versión. Si ingresa al directorio open_framework recién creado, verá & # 8217; verá los archivos del proyecto allí, listos para trabajar o usar.

Clonación de un repositorio en una carpeta local específica

Si desea clonar el repositorio en un directorio llamado algo diferente a open_framework, puede especificarlo como la siguiente opción de línea de comandos:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

Ese comando hace lo mismo que el anterior, pero el directorio de destino se llama mynewtheme.

Git tiene varios protocolos de transferencia diferentes que puede usar. El ejemplo anterior usa el protocolo git: //, pero también puede ver http (s): // o user @ server: /path.git, que usa el protocolo de transferencia SSH.

Cuando mueve los archivos a donde los quiere, ¿también está moviendo el directorio .git? Dependiendo de su sistema operativo y configuración, este directorio puede estar oculto.

Contiene el repositorio y los archivos de soporte, mientras que los archivos de proyecto que están en su directorio /public son solo las versiones en la confirmación de salida actual (rama maestra por defecto).

Clonar:

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

Clone la " rama específica " ;:

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

Para clonar el repositorio de git en una carpeta específica, puede usar el parámetro -C <path>, por ejemplo,

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

Aunque seguirá creando una carpeta whatever encima, por lo que para clonar el contenido del repositorio en el directorio actual, use la siguiente sintaxis:

git git@github.com:whatever .

Tenga en cuenta que la clonación en un directorio existente está solo permitido cuando el directorio está vacío .

Dado que está clonando en una carpeta accesible para el público, considere separar su repositorio de Git de su árbol de trabajo utilizando --separate-git-dir=<git dir> o excluya la carpeta .git en la configuración de su servidor web (por ejemplo, en el archivo .htaccess).

Si desea clonar en la carpeta actual, debe intentar esto:

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

Para clonar al directorio de trabajo actual :

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

Para clonar a Otro directorio :

clon git https://github.com/link.git ./Folder1/ Carpeta2

Espero que ayude :)

Asegúrese de eliminar el repositorio .git si está tratando de verificar algo en el directorio actual.

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

Usuario

git clone <repository>

Clone el repositorio ubicado en < repositorio > en la máquina local. El repositorio original se puede ubicar en el sistema de archivos local o en una máquina remota accesible a través de HTTP o SSH.

git clone <repo> <directory>

Clone el repositorio ubicado en < repositorio > en la carpeta llamada < directorio > en la máquina local.

Fuente: Configuración de un repositorio

Así es como lo haría, pero he creado un alias para hacerlo por mí.

$ cd ~Downloads/git; git clone https:git.foo/poo.git

Probablemente haya una forma más elegante de hacer esto, sin embargo, me pareció más fácil para mí.

Aquí está el alias que creé para acelerar las cosas. Lo hice para zsh, pero debería funcionar bien para bash o cualquier otro shell como fish, xyzsh, fizsh, etc.

Edite ~/.zshrc, /.bashrc, etc. con su editor favorito (el mío es Leafpad, así que escribiría $ leafpad ~/.zshrc).

Sin embargo, mi preferencia personal es crear un complemento zsh para realizar un seguimiento de todos mis alias. Puede crear un complemento personal para oh-my-zsh ejecutando estos comandos:

$ 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'

Luego, agregue estas líneas a su archivo alises.plugin en blanco recién creado:

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

(A partir de aquí, reemplace su nombre por el mío).

Entonces, para que los alias funcionen, ellos (junto con zsh) tienen que ser adquiridos (o como se llame). Para hacerlo, dentro de su documento de complemento personalizado agregue esto:

## 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 "

####################################

Guarde su complemento oh-my-zsh y ejecute allsource. Si eso no parece funcionar, simplemente ejecute source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh. Eso cargará la fuente del complemento que le permitirá usar <=> de ahora en adelante.


Estoy en el proceso de hacer un repositorio Git con todos mis alias. No dude en consultarlos aquí: archivos de puntos de Ev . No dude en bifurcar y mejorarlos para satisfacer sus necesidades.

Por alguna razón, esta sintaxis no se destaca:

git clone repo-url [folder]

Aquí la carpeta es una ruta opcional a la carpeta local (que será un repositorio local).

Git clone también pull codificará desde el repositorio remoto al repositorio local. De hecho es cierto:

git clone repo-url  =  git init + git remote add origin repo-url + git pull

Si está utilizando ssh para git cloning puede usar el siguiente comando.

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

por ejemplo: git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git extraería el repositorio git de requests a su /home/ubuntu/ ruta.

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 .

Te recomendaré que sigas el siguiente enlace:

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

Si obtiene el siguiente error mientras git clone URL comando

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

Luego use el siguiente comando para solucionarlo:

git config --global --unset https.proxy

Con respecto a esta línea de la publicación original:

  

" Sé cómo mover los archivos después de haber clonado el repositorio, pero esto   parece romper git "

Soy capaz de hacer eso y hasta ahora no veo ningún problema con mis operaciones de agregar, confirmar, empujar, jalar.

Este enfoque se indica anteriormente, pero no se desglosa en pasos. Estos son los pasos que funcionan para mí:

  1. clone el repositorio en cualquier carpeta temporal nueva
  2. cd en esa carpeta raíz que acaba de clonar localmente
  3. copie todo el contenido de la carpeta, incluido el directorio /.git, en cualquier carpeta existente que desee; (diga un proyecto de eclipse que desee fusionar con su repositorio)

La carpeta existente en la que acaba de copiar los archivos ahora está lista para interactuar con git.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top