2010-07-22 8 views
524
  1. Tengo un directorio no vacío (por ejemplo,/etc/algo) con archivos que no se pueden renombrar, mover o borradoCómo convertir un directorio existente no vacío en un directorio de trabajo de Git y enviar archivos a un repositorio remoto

  2. Quiero comprobar este directorio en el GIT en su lugar.

  3. Quiero ser capaz de enviar el estado de este repositorio a un repositorio remoto (en otra máquina) usando "git push" o algo similar.

Esto es trivial usando Subversion (actualmente lo hacemos usando Subversion) usando:

svn mkdir <url> -m <msg> 
cd <localdir> 
svn co <url> . 
svn add <files etc> 
svn commit -m <msg> 

¿Cuál es el equivalente git?

Puedo "git clone" en un directorio vacío y simplemente mover el directorio .git y tienen todo el trabajo?

+4

Tal vez simplemente no lo entiendo, pero ¿no puede simplemente ejecutar 'git init' dentro del directorio local? – Philipp

+0

¿Quiere decir que tiene un repositorio en otro lugar y desea agregar a ese repositorio todos los contenidos de este otro directorio que no es un repositorio? ¿O simplemente está tratando de crear un nuevo repositorio en ese directorio? – Cascabel

+2

He intentado resumir este tema en un artículo simple. Me encantaría compartirlo aquí, espero que ayude. http://zeshan.info/add-existing-project-to-git-repository/ –

Respuesta

854

Teniendo en cuenta que haya configurado un demonio Git en <url> y un repositorio vacío:

cd <localdir> 
git init 
git add . 
git commit -m 'message' 
git remote add origin <url> 
git push -u origin master 
+12

** Las instrucciones ** de abyx parecen funcionar. Hacer ahora corro: 'git config origen controlado branch.master.remote y 'branch.master.merge git config refs/heads/master' y lo que va a terminar con será exactamente el mismo como si ¿Cloné el repositorio remoto? es decir 'git pull' y' git push' * solo funcionan *? – HMW

+0

@HMW De hecho, ¡eso es todo! – abyx

+0

gracias. esto funciona – honcheng

11

En caso de que el repositorio remoto no está vacío (este es el caso si usted está usando DevOps IBM en hub.jazz .net), entonces es necesario utilizar la siguiente secuencia:

cd <localDir> 
git init 
git add -A . 
git pull <url> master 
git commit -m "message" 
git remote add origin <url> 
git push 

EDITAR trigésimo Ene 17: véanse los comentarios a continuación, asegúrese de que está en el repositorio correcto!

+0

Los comandos anteriores borraron todas mis compilaciones existentes :(Por favor, tenga cuidado antes de seguir los pasos anteriores –

+0

este empuje al repositorio de trabajo, precaución. – user1532587

17

aquí está mi solución:

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

Ésta es la forma en que hago. He añadido una explicación para entender qué diablos está pasando.

Inicializar local Repositorio

  • primera inicializar Git con

    init git

  • Añadir todos los archivos de control de versiones con

    git add.

  • Crear una confirmación con el mensaje de su elección

    git commit -m 'AddingBaseCode'

    Inicializar repositorio remoto

  • Crear un proyecto en Github y copiar la URL de su proyecto y copiar la URL del proyecto.

    enter image description here

    Enlace repo repo local remoto con

  • ahora utilizan URL para enlazar tu repositorio local con control remoto repo GitHub copiado. Cuando clona un repositorio con git clone, crea automáticamente una conexión remota llamada origen que apunta hacia atrás al repositorio clonado. El comando remote se usa para administrar el conjunto de repositorios rastreados.

    git add remoto origen https://github.com/hiteshsahu/Hassium-Word.git

    Sincronizar

  • Ahora tenemos que combinar con el código local remota de código. Este paso es crítico, de lo contrario no podremos presionar Código en Github. Debe llamar a 'git pull' antes de presionar su código.

    git origen tirón maestro --allow-no relacionadas-historias

    de comprometer su código

  • Finalmente pasar todos los cambios en GitHub

    git push -u origen maestro

Cuestiones relacionadas