Empujar proyecto existente en Github


224

Tengo una carpeta con las fuentes de mi proyecto. ¿Cómo puedo empujar este proyecto al repositorio de Github?

Intenté seguir estos pasos:

  1. Creé un repositorio vacío en GitHub.
  2. Ejecuté git-bash y escribí git init, así que dentro del proyecto apareció la .gitcarpeta raíz .
  3. Agregué algunos archivos al control de versiones usando git add sourcesFolderName
  4. Confirmé los archivos agregados en el paso anterior usando git commit -m "initial commit"
  5. Especifiqué el repositorio remoto usando git remote add MyProject <url>
  6. Finalmente git push, pero nada se envía al repositorio remoto ... (sin falla de autorización)

Entonces, ¿cómo puedo empujar las fuentes existentes al repositorio de github recién creado?


44
¿Cuál fue exactamente la salida de git push?
1615903

1
@ user1615903 Estoy seguro de que tengo una secuencia de pasos incorrecta. Creo que necesito algo así git clone. No recuerdo el resultado de git push, pero creo que no es significativo. Porque el problema en otro lugar
MyTitle

Hizo usted git push MyProject master?
Felix Kling

Esta publicación de blog puede ayudar a cualquiera que quiera hacer esta tarea. Todos los pasos se describen de manera simple y detallada. samranga.blogspot.com/2015/07/…
Samitha Chathuranga

1
Un pequeño consejo, intenta usar la aplicación SourceTree. La interfaz de usuario es muy agradable.
Mohammad Fareed

Respuestas:


340
git init
git add .
git commit -m "Initial commit"
git remote add origin <project url>
git push -f origin master

La -fopción sobre git pushfuerza el empuje. Si no lo usa, verá un error como este:

To git@github.com:roseperrone/project.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:roseperrone/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

55
Esto solucionó mi problema, pero no pude hacer el comando 4 git remote add origin <project url>diciendo command syntax not correct. Lo ignoré y funcionó
Khalil Khalaf

44
Solo una nota al margen, si no desea utilizar el sitio web de GitHub, puede agregar esto después del tercer paso: curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'reemplazar USUARIO con su nombre de usuario y REPO con el nombre del repositorio que se creará.
MD XF

1
Además, creo que ya no puedes hacerlo git add ., debes cambiar eso cat "# reponamehere" >README.mdy luego git add README.md. Así es como dice la documentación de GitHub
MD XF

2
¿Creo que la -fbandera obligará a que desaparezca la historia remota? Parece un operador peligroso.
van abel

112

En términos menos técnicos

Mi respuesta no es diferente, pero estoy agregando más información porque aquellos que son nuevos podrían beneficiarse al llenar los vacíos de información.

Después de crear el repositorio en github, tienen instrucciones. Puedes seguir esos. Pero aquí hay algunos consejos adicionales porque sé lo frustrante que es comenzar con git.

Digamos que ya ha comenzado su proyecto localmente. Cuánto tienes no importa. Pero supongamos que tienes un proyecto php. Digamos que tiene el index.php, contact.php y una carpeta de activos con imágenes, CSS y fuentes. Puede hacerlo de esta manera (fácil), pero hay muchas opciones:

Opción 1

Inicie sesión en su cuenta de github y cree el repositorio.

ingrese la descripción de la imagen aquí

En la siguiente pantalla, puede copiarlo donde lo necesite si hace clic en el botón (lado derecho de la pantalla) para "clonar en el escritorio".

ingrese la descripción de la imagen aquí

Puede (o hacerlo de otra manera) luego copiar el contenido de su proyecto existente en su nuevo repositorio. Usando la aplicación github, puedes comprometerte desde allí usando su GUI (eso significa que solo haces clic en los botones de la aplicación). Por supuesto, ingrese sus notas para la confirmación.

opcion 2

  • Crea tu repositorio en github como se mencionó anteriormente.
  • En su computadora, vaya a su directorio utilizando el terminal. usando la línea de comando de linux que haría cd en el directorio. Desde aquí ejecuta los siguientes comandos para "conectar" su proyecto existente a su repositorio en github. (Esto supone que creó su repositorio en github y que actualmente está vacío)

primero haga esto para inicializar git (control de versiones).

git init

luego haga esto para agregar todos sus archivos para ser "monitoreados". Si tiene archivos que desea ignorar, debe agregar un .gitignorepero por simplicidad, solo use este ejemplo para aprender.

git add .

Luego se compromete y agrega una nota entre """primer compromiso", etc.

 git commit -m "Initial Commit"

Ahora, aquí es donde agrega su repositorio existente

git remote add github <project url>

Pero no escriba literalmente <project url>, sino su propia URL del proyecto. ¿Cómo se consigue eso? Vaya al enlace donde está su repositorio en github, luego copie el enlace. En mi caso, uno de mis repositorios es https://github.com/JGallardo/urbanhistorical, por lo que mi URL resultante para este comando simplemente agregaría .git después de eso. Entonces aquí estaría

git remote add github https://github.com/JGallardo/urbanhistorical.git

Prueba para ver que funcionó haciendo

git remote -v

Debería ver a qué está vinculado su repositorio.

ingrese la descripción de la imagen aquí

Entonces puedes empujar tus cambios a github

git push github master

o

git push origin master

Si aún recibe un error, puede forzarlo con -f. Pero si está trabajando en un entorno de equipo, tenga cuidado de no forzar o podría crear más problemas.

git push -f origin master

3
La tuya es la mejor explicación. Para otros que leen esto: primero creé mi repositorio en github, por lo que no me dejaba presionar. Tuve que> github pull <project url> y luego github push. Después de eso, todo estuvo bien.
philologon

1
muchas gracias por esto! ¡La opción 1 me salvó la vida después de que todas las otras opciones fallaron! : D
Sara Inés Calderón

2
¡Gran explicación! Sin embargo, agregaría las siguientes líneas: git remote add origin <project url> y luego git push -f origin master. Sin la -f, habrá un error
Javiar Sandra

1
agregue la opción -f al último comando, de esa manera su respuesta es la mejor
Jacobo Koenig

1
Eso realmente ayudó! Accidentalmente inicialicé el repositorio de github con un archivo README, luego no funcionó. Lo volví a hacer con un repositorio vacío y funcionó.
Verena Haunschmid

36

necesitará especificar qué rama y qué control remoto al presionar:

➤ git init ./
➤ git add Readme.md
➤ git commit -m "Initial Commit"
➤ git remote add github <project url>
➤ git push github master

Funcionará como se esperaba.

Puede configurar esto de forma predeterminada haciendo:

➤ git branch -u github/master master

lo que le permitirá hacer un git pushmaestro desde sin especificar el control remoto o la rama.


1
Correcto. También puede omitir la /masterparte, ya que es redundante.
Gabriele Petronella

1
"git add Readme.md" no es correcto. Si ya existía, no es necesario agregar. Si no existiera, el comando falla. De cualquier manera, esto no es correcto.
Mitch

1
@Mitch esto no es una invocación mágica secreta que de repente hará que tu computadora haga lo que quieras. Es un ejemplo para darles a las personas una idea de lo que deberían estar haciendo. Espero que la gente entienda los comandos que están escribiendo en su máquina.
Brice

9

Si estás en una Mac (y esto probablemente funciona igual en una PC), aquí hay una manera muy fácil de hacerlo. Por extraño que parezca, he buscado por todos lados este simple proceso y nunca lo he encontrado.

  • No haga nada en Github (aparte de tener una cuenta y no haber usado todos sus repositorios disponibles).
  • Descarga GitHub para Mac e instálalo. Revise la configuración de la cuenta, etc. NO cree ningún repositorio para su proyecto existente.
  • "Agregar nuevo repositorio local" en repositorios.
  • Selecciona tu carpeta existente. Te preguntará si quieres hacer eso, di que sí.
  • Una vez hecho esto, verá una lista de todos sus archivos, etc. Compártalos.
  • Vaya a Repositorios y publique (esto creará el nuevo repositorio en GitHub para usted, si configura su cuenta correctamente).
  • Vaya a Repositorios y Push (verá la cosa "nada que empujar", o empujará sus archivos / cambios al repositorio recién hecho).
    • Me pregunto por qué no podrías encontrar este simple proceso en ningún otro lado.

Sé que no se recomienda usar la carpeta del proyecto como carpeta de repositorio. Lo hago todo el tiempo, siempre funciona, lo hace simple y nunca tengo ningún problema con eso.


Me parece que si la aplicación GitHub permite que un usuario lo haga de esta manera, entonces debe estar bien.
Johnnieb


5

Seguiré el comentario anterior de Rose P. Me llevó mucho tiempo encontrar la solución, así que estoy volviendo a publicar (con suerte en inglés simple) lo que funcionó para mí ...

Paso 1: crea tu nuevo repositorio en Github.com (omite si ya tienes uno)

Paso 2: Cerrar XCode ... no es necesario

Paso 3: Abre una nueva ventana de Terminal (sí, tienes que usar la terminal ... Intenté todas las demás formas ... nada funcionó)

paso 4: Usando el comando cd para encontrar la ubicación de tu carpeta en tu proyecto (el proyecto que deseas agregar a tu repositorio existente o nuevo)

Paso 5: escribe git init , obtendrás algo como esto. Reiniciamos el repositorio Git existente en / {directorio actual}

Paso 6: escriba git add. no sucede nada después de este paso, pero escríbalo y continúe con el siguiente.

Paso 7: escriba git commit -m "Confirmación inicial" obtendrá lo siguiente: # En la rama maestra, nada que confirmar, directorio de trabajo limpio

o

alguna explicación sobre la configuración y luego una lista de archivos que han cambiado.

paso 8: escriba git remote add origin {project url} La url del proyecto se puede encontrar en Github.com. Es la URL del clon HTTPS ... debería poder copiar y pegar en la ventana del terminal. Si el sistema le dice que el origen ya existe, cree un nombre diferente o use el nombre de su proyecto (algo diferente)

Paso 9: ve a tu aplicación GitHub en tu Mac y haz clic en el botón "Sync Branch" (incluso si no hay cambios pendientes). Creo que lleva un tiempo confirmarlo, pero si vuelves a la carpeta del repositorio local, verás tu nuevo proyecto. Tuve que volver a crear la carpeta principal, pero solo es cuestión de mover los archivos. Vaya a GitHub.com y actualice su navegador y sus nuevos archivos también deberían estar allí.

Espero que eso ayude.


5
Follow below gitbash commands to push the folder files on github repository :-
1.) $ git init
2.) $ git cd D:\FileFolderName
3.) $ git status
4.) If needed to switch the git branch, use this command : 
    $ git checkout -b DesiredBranch
5.) $ git add .
6.) $ git commit -m "added a new folder"
7.) $ git push -f https://github.com/username/MyTestApp.git TestBranch
    (i.e git push origin branch)

4
git init

Agregue los archivos en su nuevo repositorio local. Esto los prepara para la primera confirmación.

git add .

Agrega los archivos en el repositorio local y los organiza para confirmar. Para desestabilizar un archivo, use 'git reset HEAD YOUR-FILE'.

Confirma los archivos que has montado en tu repositorio local.

git commit -m "First commit"
# Commits the tracked changes and prepares them to be pushed to a remote

repositorio. Para eliminar esta confirmación y modificar el archivo, use 'git reset --soft HEAD ~ 1' y confirme y agregue el archivo nuevamente. Copiar campo URL del repositorio remoto En la parte superior de la página de Configuración rápida de su repositorio GitHub, haga clic para copiar la URL del repositorio remoto.

En el símbolo del sistema, agregue la URL del repositorio remoto donde se empujará su repositorio local.

git remote add origin remote repository URL
# Sets the new remote
git remote -v
# Verifies the new remote URL

Empuje los cambios en su repositorio local a GitHub.

git push origin master
# Pushes the changes in your local repository up to the remote repository you 

especificado como el origen


4
  1. Desde la línea de comandos, navegue a su directorio de repositorio local.
  2. Cree un nuevo repositorio en GitHub, le proporcionará un enlace que termina con .git.
  3. en cmd run: git remote add origin [your_GitHub_Repository_link](recuerde que el enlace debe terminar con .git)
  4. entonces corre : git push -u origin master

Espero que esto haya sido útil.


4

Crea un nuevo repositorio

git clone <url>
cd "repositoryName"
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Carpeta existente

cd existing_folder
git init
git remote add origin <url>
git add .
git commit -m "Initial commit"
git push -u origin master

Repositorio Git existente

cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
git push -u origin --tags

¿Cuál es la diferencia entre commit y push? ¿A qué se refieren "origen" y "maestro" en push? ¿una rama?
ealeon

2

Primero, cree un nuevo repositorio en Github con el nombre de su proyecto. Luego siga los pasos a continuación.

1)git init
2)git add *
3)git commit -m "first commit"
4)git remote add origin https://github.com/yuvraj777/GDriveDemo.git
5)git push -u origin master

2

Lo sé, esta es una vieja pregunta, pero estoy tratando de explicar cada paso, por lo que puede ayudar a otros. Así es como agrego una fuente existente a git:

  1. Crea el repositorio en el git, así tendrás el ssh || https donde vas a agregar remotamente tu código fuente.
  2. En su terminal, vaya a la ruta de su proyecto.
  3. Ejecuta git init(aquí inicias el proyecto como un git).
  4. Ejecutar git add *(aquí agrega todos los archivos y carpetas de su proyecto).
  5. Ejecutar git commit -m "Initial Commit."(aquí confirma sus archivos y carpetas agregados en el paso 4; tenga en cuenta que no puede impulsar sus cambios sin confirmarlos).
  6. Ejecutar git remote add origin https://your_username@bitbucket.org/your_username/project-name.git(aquí agrega un proyecto remoto donde su fuente será empujada; reemplace mi enlace con su ssh || https del paso # 1).
  7. Ejecuta git push -u origin master(aquí empujas tu fuente al repositorio de git).

Nota: Esos son pasos simples para empujar su fuente a la rama maestra .


2

Odio agregar otra respuesta, pero mi escenario particular no está cubierto aquí. Tenía un repositorio local con un historial de cambios que quería conservar, y un repositorio no vacío creado para mí en Github (es decir, con el README.md predeterminado). Sí, siempre puede volver a crear el repositorio de Github como un repositorio vacío, pero en mi caso alguien más tiene los permisos para crear este repositorio en particular, y no quería molestarlo, si hubiera una solución fácil.

En este escenario, encontrará este error cuando intente git pushdespués de configurar el origen remoto:

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:<my repo>.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Como indica el error, tenía que hacer una git pulldespués de configurar el origen remoto, pero necesitaba especificar la --allow-unrelated-historiesopción. Sin esta opción, se git pullqueja warning: no common commits.

Así que aquí está la secuencia exacta de comandos que funcionó para mí:

git remote add origin <github repo url>
cp README.md README.md-save
git pull origin master --allow-unrelated-histories
mv README.md-save README.md
git commit -a
git push

Tengo el mismo problema, pero tus pasos conducen a una cosa extraña del editor de texto
john ktejik

Ah, supongo que normalmente usa una interfaz de usuario y normalmente no se compromete desde la línea de comandos (no hay nada de malo en eso, uso la interfaz de usuario de SourceTree). El editor que apareció es probablemente el editor vi, cuya interfaz es un tema completo en sí mismo, por lo que no profundizaré aquí.
Jonathan Fischer el

2

A partir del 29/07/2019, Github presenta a los usuarios las instrucciones para llevar a cabo esta tarea cuando se crea un repositorio, ofreciendo varias opciones:

crear un nuevo repositorio en la línea de comando

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

empujar un repositorio existente desde la línea de comando

git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

importar código de otro repositorio

presione el importbotón para inicializar el proceso.

Para los alumnos visuales:

ingrese la descripción de la imagen aquí




0

Descubrí que estimular una actualización en la secuencia "natural" era una ruta más fácil que las cosas que empujan la fuerza.

Supongamos que el repositorio ya está creado en github y es posible que también haya puesto algunas cosas en README.md.

  1. En su computadora, abra la terminal y git clone [repo URL]

  2. Verá que se habrá creado una nueva carpeta con el nombre de su repositorio. Siéntase libre de cambiarle el nombre, no importa.

  3. Mueva su código, archivos, etc. a esta carpeta. Edite el archivo README.md si es necesario.

  4. Ahora abra Terminal / símbolo del sistema, ingrese a esa carpeta y haga las cosas como si estuviera haciendo la próxima actualización del repositorio:

git add .
git commit -m "v2"
git push origin master

Nota: en el comando commit, git puede rechazar, pidiendo configurar primero el correo electrónico y la contraseña del usuario. Siga los pasos que se indican en la pantalla, luego ejecute el comando commit nuevamente.

  1. Y esos tres comandos son lo que haces ahora en adelante cada vez que quieres impulsar otra actualización.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.