git - tag - error: los siguientes archivos del árbol de trabajo sin seguimiento se sobrescribirían al finalizar la compra
git tag (3)
Cuando hago el git status
no dice nothing to commit, working directory clean
Y luego hago git pull --rebase
, dice:
First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
includes/resources/moduledata/12/_Fr4_02_Invention_IPA_SR_la-Fête.pdf
Please move or remove them before you can switch branches.
Aborting
could not detach HEAD
Error similar al hacer git pull origin master
* branch master -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
includes/resources/moduledata/12/_Fr4_02_Invention_IPA_SR_la-Fête.pdf
Please move or remove them before you can merge.
Aborting
Mi archivo .gitignore
:
→ cat .gitignore
.htaccess
bower_components/
Este archivo ha estado apareciendo constantemente y cuando lo elimino del sistema de archivos, git dirá que eliminé este archivo, mientras que en los otros mensajes, dice que no está rastreado. ¿Cómo podría no ser rastreado y rastreado al mismo tiempo?
Esto también podría suceder debido a un cambio de caso en el nombre del archivo. Tuve el mismo problema y esto es lo que me lo resolvió.
git config core.ignorecase true
Cierto para Mac o PC.
Soluciones alternativas en: Los siguientes archivos del árbol de trabajo sin seguimiento se sobrescribirían al finalizar la compra
Sin una imagen completa del repo, lo que sigue es más una suposición que otra cosa, pero podría explicar la situación. Digamos que su historia se ve como sigue:
A -- C [origin/master]
/
B [HEAD, master]
Usted escribe:
Este archivo ha estado apareciendo constantemente y cuando lo elimino del sistema de archivos, git dirá que eliminé este archivo, mientras que en los otros mensajes, dice que no está rastreado.
Supongo que puedes haber corrido
git rm --cached <file-in-question>
y cometió que la eliminación en cometer B
; por lo tanto, el archivo ya no se rastrea en su repositorio local y aún está presente en su árbol de trabajo.
Mientras tanto, la rama ascendente recibió el commit C
de uno de sus colaboradores, en el que <file-in-question>
no se eliminó del control de versiones. Lo que estás intentando hacer con
git pull --rebase
es algo como esto:
A -- C [origin/master]
/
B'' [HEAD, master]
Sin embargo, como dice el mensaje,
El árbol de trabajo no [...] rastreado [archivo] se sobrescribiría al finalizar la compra
De hecho, si se rebobina el commit C
(para reproducir B
encima de él), se obtendrá una revisión de <file-in-question>
(de commit C
) que se desprotegerá en su árbol de trabajo, en el que se mostrará un archivo sin seguimiento del archivo. Ya existe el mismo nombre. El contenido de ese archivo sin seguimiento puede ser valioso; es posible que no desee que otro archivo sobrescriba ese archivo. Por lo tanto, Git se detiene en su pista y le dice qué está mal.
Edición : Aquí hay un ejemplo de bebé que reproduce la situación ...
cd ~/Desktop
mkdir test
cd test
git init
touch README.md
git add README.md
git commit -m "add README"
# simulate a remote branch moving ahead by one commit
# (that doesn''t remove the README)
git checkout -b origin_master
printf "This is a README./n" > README.md
git add README.md
git commit -m "add description in README"
# remove the README and create a new commit on master
git checkout master
git rm --cached README.md
git commit -m "remove README"
# simulate an attempt to rebase master to its "upstream" branch, origin_master
git rebase --onto origin_master master
Ese último comando arroja lo siguiente:
First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
README.md
Please move or remove them before you can switch branches.
Aborting
could not detach HEAD
Te sugiero que corras
git fetch
git log --stat origin/master..master -- <file-in-question>
para comprobar si algo así sucedió.
Eliminar todos los archivos sin seguimiento (cuidado):
git clean -d -fx ""