Pregunta Cómo convertir un directorio existente no vacío en un directorio de trabajo de Git y enviar archivos a un repositorio remoto


  1. Tengo un directorio no vacío (por ejemplo, / etc / something) con archivos que no pueden renombrarse, moverse ni eliminarse.

  2. Quiero comprobar este directorio en git en su lugar.

  3. Quiero poder 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 de git?

¿Puedo "clonar git" en un directorio vacío y simplemente mover el directorio .git y hacer que todo funcione?


553
2017-07-22 17:48


origen


Respuestas:


Dado que has configurado un daemon 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

895
2017-07-22 17:53



Aquí está mi solución:

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

18
2018-05-07 08:41



Así es como lo hago. He agregado una explicación para entender qué diablos está pasando.

Inicializar el repositorio local

  • primero inicializar Git con

    git init

  • Agregue todos los archivos para el control de la versión con

    git add.

  • Crea una confirmación con el mensaje de tu elección

    git commit -m 'AddingBaseCode'

    Inicializar repositorio remoto

  • Crea un proyecto en Github y copia la URL de tu proyecto y copia la URL del proyecto.

    enter image description here

    Enlace Repo remoto con repositorio local

  • Ahora use la URL copiada para vincular su repositorio local con el repositorio remoto de GitHub. Cuando clonas un repositorio con git clone, automáticamente crea una conexión remota llamada origen apuntando hacia atrás al repositorio clonado. El comando remote se usa para administrar el conjunto de repositorios rastreados.

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

    Sincronizar

  • Ahora necesitamos fusionar el código local con el código remoto. Este paso es crítico, de lo contrario no podremos presionar Código en Github. Debes llamar a 'git pull' antes de presionar tu código.

    git pull master de origen --allow-unrelated-histories

    Confirma tu código

  • Finalmente presione todos los cambios en Github

    git push -u origin master


18
2017-10-29 13:10



En caso de que el repositorio remoto no esté vacío (este es el caso si está utilizando IBM DevOps en hub.jazz.net), entonces necesita usar 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 30 de enero 17: Por favor, vea los comentarios a continuación, ¡asegúrese de estar en el repositorio correcto!


11
2018-04-21 10:33



Cuando un repositorio de github no está vacío, como .gitignore y licencia

Utilizar pull --permitir historias no relacionadas y push --force-with-lease

Usa comandos

git init
git add .
git commit -m "initial commit"
git remote add origin https://github.com/...
git pull origin master --allow-unrelated-histories
git push --force-with-lease

2
2018-04-05 19:52