Estoy rebasando en git, y un conflicto que obtengo es 'ambos agregados', es decir, exactamente el mismo nombre de archivo se ha agregado independientemente en mi rama y en la rama en la que rebase. git status
me dice:
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both added: src/MyFile.cs
Mi pregunta es, ¿cómo resuelvo esto? ¿Debo usar una herramienta de combinación o hay alguna manera de hacerlo desde la línea de comandos? En caso afirmativo git rm src/MyFile.cs
, ¿cómo sabe git qué versión de archivo quiero eliminar y cuál quiero conservar?
git checkout --ours someFile
Puede parecer que no hizo nada al hacer el estado de git. Solo recuerda hacer esto después.git add someFile
git status
A veces me resulta confuso usar las opciones
--theirs
y--ours
para identificar de dónde vendrá el archivo. ¡La mayoría de las veces la mía estará en la rama que estoy rebajando, a la que se refiere--theirs
!También puedes usar
git checkout <tree-ish> -- src/MyFile.cs
Donde el
<tree-ish>
se puede reemplazar por el nombre de la sucursal o el commit-id que contiene el archivo que desea conservar.git checkout 6a363d8 -- src/MyFile.cs
git checkout my_branch -- src/MyFile.cs
git checkout HEAD -- src/MyFile.cs
fuente
Al hacer ...
git checkout --ours someFile
Puede parecer que no hizo nada al hacer el estado de git.
Solo recuerda hacer esto después.
fuente