¿Cuál es la diferencia entre `git init` y `git clone`?
Ver respuesta — intenta responderla en voz alta primero
git init crea un repositorio nuevo y vacío en una carpeta local (empiezas de cero). git clone copia un repositorio existente (normalmente remoto, como uno de GitHub) a tu máquina, con todo su historial y ya conectado al remoto.
Son las dos formas de empezar a trabajar con un repositorio:
git init: úsalo cuando arrancas un proyecto desde cero. Convierte una carpeta normal en un repositorio de Git creando la carpeta oculta.git. No tiene historial ni remoto todavía.git clone <url>: úsalo cuando quieres trabajar en un proyecto que ya existe en un servidor. Descarga todos los archivos y todo el historial, crea la carpeta, hacegit initpor debajo y además deja configurado el remotooriginapuntando a la URL de origen.
En resumen: init para empezar algo nuevo, clone para unirte a algo existente.
# git init: repositorio nuevo desde cero
mkdir mi-proyecto
cd mi-proyecto
git init
# Salida: Initialized empty Git repository in /ruta/mi-proyecto/.git/
# No hay commits ni remoto todavía
# git clone: copiar un repositorio existente
git clone https://github.com/usuario/proyecto.git
# Crea la carpeta "proyecto", descarga todo el historial
# y configura automáticamente el remoto "origin"
cd proyecto
git remote -v
# origin https://github.com/usuario/proyecto.git (fetch)
# origin https://github.com/usuario/proyecto.git (push)
Hacer git init dentro de una carpeta que ya clonaste, creyendo que "hace falta". No: al clonar ya tienes un repositorio completo. Otro error es olvidar que git init no conecta con ningún remoto; después tienes que agregarlo tú con git remote add origin ... si quieres subir el proyecto.
"
git initcrea un repositorio nuevo y vacío en una carpeta local; lo uso cuando arranco un proyecto desde cero.git clonecopia un repositorio que ya existe, normalmente uno remoto, con todo su historial, y de paso me deja configurado el remotoorigin. Así que init es para empezar algo nuevo y clone para unirme a algo que ya existe."
Acabas de hacer git clone de un repo. ¿Necesitas ejecutar git remote add origin ... para poder hacer git push?
Ver respuesta
No. git clone ya configura automáticamente el remoto origin apuntando a la URL desde la que clonaste. Puedes verificarlo con git remote -v. git remote add origin ... solo es necesario cuando creaste el repo con git init y aún no tiene remoto.