¿Por qué Git no organiza algunas carpetas "modificadas" para una confirmación inicial?

He recibido el código para una versión anterior modificada de ERPNext de una copy de security de tarball, y deseo agregar este código en un repository local de Git en mi computadora portátil Ubuntu para poder realizar un seguimiento de los cambios hasta que mi empleador pueda alojar un repository remoto. Suponiendo que la copy de security ya se haya extraído en ~/backup/erpnext/ , estoy intentando configurar mi repository de Git para una confirmación inicial como esta:

 cd ~ mkdir erpnext cd erpnext cp -r ~/backup/erpnext/* ./ git init git add * 

Esto, pensé, debería agregar todos los files y carpetas en la copy de security al directory ~/erpnext y ponerlos en etapa para una confirmación inicial. Sin embargo, solo para asegurarme de que todo funciona como se esperaba, ejecuté el git status antes de realizar una confirmación y me saludaron con este resultado:

 On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: app new file: conf.py new file: conf.pyc new file: erpnext-backup.log new file: erpnext-sch.log new file: lib new file: public/app new file: public/app.html new file: public/css/all-app.css new file: public/css/all-web.css new file: public/js/all-app.min.js new file: public/js/all-web.min.js new file: public/js/editor.min.js new file: public/js/slickgrid.min.js new file: public/lib new file: scheduler.lock Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) (commit or discard the untracked or modified content in submodules) modified: app (modified content, untracked content) modified: lib (modified content, untracked content) 

Lo que me sorprendió fue que la app y la lib (que son ambas carpetas) se marcaron como que tenían contenidos modificados y no se configuraron para la confirmación. Intenté ejecutar git add --force en * , app y lib , pero no parece cambiar nada.

No quiero comprometer mi código y tener estas carpetas excluidas del repository. ¿Cómo puedo solucionar esto?

eliminar cualquier .git/ directorys en esas subcarpetas. pueden confundir git (ver los git submodules para más información).

(Por cierto, puede dejar cualquier file .gitignore , ya que es de esperar que ayuden a ignorar los files temporales específicos de estas carpetas).

Aquí hay un command útil para eliminar todos los directorys .git en cualquier subdirectory de ~/erpnext (pero no ~/erpnext/.git ):

  find ~/erpnext/ -depth -mindepth 2 -type d -name .git -exec rm -rf \{\} \; 

alternativamente, si su proyecto upstream ya es un repository git (con submodules), es posible que desee conservar el historial original, al continuar trabajando en el VCS original:

 cd ~ rm -rf erpnext cp -r ~/backup/erpnext . cd erpnext git log 
    Intereting Posts