Estoy usando Git y he cambiado el nombre manualmente de un archivo que había agregado al repositorio. Ahora, he agregado el "nuevo" archivo que renombré al repositorio pero Git se queja de que el archivo "viejo" ha sido eliminado. Entonces, ¿cómo puedo hacer que Git se olvide del viejo archivo? Mejor aún, ¿cómo le digo a Git que el "nuevo" archivo es realmente el "nuevo" archivo para que pueda mantener el historial de cambios intactos?Git: archivo renombrado manualmente, Git confundido
Respuesta
En primer lugar, cancelar su protagonizaron añadir el archivo movido manualmente:
$ git reset path/to/newfile
$ mv path/to/newfile path/to/oldfile
A continuación, utilizar Git para mover el archivo:
$ git mv path/to/oldfile path/to/newfile
Por supuesto, si usted ya ha confirmado el movimiento manual, Es posible que desee restablecer a la revisión antes del movimiento en su lugar, y luego simplemente git mv
desde allí.
Prueba esto:
mv new old
git rm new
git mv old new
Esto no funciona. Git aún no marca el archivo como renombrado. –
No hay ningún problema. Simplemente git rm old
o incluso git add -A
y se dará cuenta de que se trata de un cambio de nombre. Git verá la eliminación más el agregado con el mismo contenido que un cambio de nombre.
No necesita deshacer, dejar de grabar, usar git mv
etc. git mv old new
es solo una mano breve para mv old new; git rm old; git add new
.
Si el archivo anterior ya no está, tienes que usar 'git rm --cached old', ya que no hay ningún archivo en el árbol de trabajo para eliminar. – Cascabel
¿Qué sucede si mueves el archivo y cambias unas pocas líneas, y luego 'git add -A'? ¿Git es lo suficientemente inteligente como para saber que un archivo _similar_ es el mismo que el anterior? – Phil
@Phil Sí. Intentalo. –
Si se produce este error, probablemente signifique que el archivo que está tratando de mover no ha sido rastreado originalmente por git o el directorio al que intenta mover el archivo no es un directorio git tracked.
- 1. git push .git/archivo de descripción
- 2. Git: excluir un archivo con git clean
- 3. GIT: /.git/index.lock ': El archivo existe
- 4. Git confundido al fusionar una actualización en mi subárbol
- 5. Git: Renombrar archivo
- 6. Renombrar archivo con Git
- 7. Concepto de git tracking y git staging
- 8. Git rebase después de la fusión confundido sobre el archivo eliminado
- 9. Git: Stop git push
- 10. ¿Cómo combinar todos los archivos manualmente en Git?
- 11. git checkout revisión de un archivo en git gui
- 12. Administrar tamaño del archivo .git
- 13. git - eliminar archivo del repositorio
- 14. git pull VS git fetch git rebase
- 15. git rm -cached file vs git reset file
- 16. Cambios de backport del archivo renombrado
- 17. .bash_history no se actualiza en Git para Windows (git bash)
- 18. Git: deshacer cambios locales; git add. + git rm?
- 19. git merge vs rebase usando git svn
- 20. Git: ¿muestra el historial de un archivo?
- 21. git-instaweb y git-clone
- 22. git stash y git pull
- 23. eliminación masiva en GIT?
- 24. git sin la carpeta .git - un git-dir remoto
- 25. Diferencia entre git pull --rebase, git rebase y git merge
- 26. Git: 'rebase' no es un comando git. Ver 'git --help'
- 27. Git-Diff vs. Git-log? ¿Cual es la diferencia?
- 28. git pull (actualizar archivo local solamente)
- 29. eliminar un archivo de control de GIT
- 30. Cómo seguir un archivo en git
'git mv old new' es esencialmente solo' git rm --cached viejo; mv viejo nuevo; git add new', con algunos conocimientos adicionales. Git identifica el cambio de nombre buscando contenido similar, por lo que los detectará si usó 'git mv' o no. Es decir, no hay manera de * decirle * que esos dos archivos correspondan. – Cascabel
Posible duplicado de [¿Cómo hacer que git marque un archivo eliminado y uno nuevo como un movimiento de archivo?] (Http://stackoverflow.com/questions/433111/how-to-make-git-mark-a-deleted-and -a-new-file-as-a-file-move) –