hacer un git pull para sobrescribir los cambios locales

Ok, ciertamente ha habido publicaciones para esto, pero en realidad me comprometí porque pensé que era lo correcto.

Entonces, tengo 2 repositorys, un desarrollo y una producción. Tuve que editar algo en la producción porque era una corrección de errores urgente, y ahora tengo 3 files que son más nuevos en la producción que en el desarrollo. Entonces, lo que hice fue comprometer la producción de los 3 files e intenté extraerlos, pero me dijeron que había errores de fusión. Intenté copyr y pegar los nuevos files en el server de desarrollo y volver a intentar todo y no funcionó. Ahora estoy seguro de que lo que necesito está en el desarrollo (ya que copié y pegué) y me comprometí, así que ¿cómo podría extraerlo? y sobrescribir los files en conflicto?

Gracias, Andre

—- Editar siguiendo a @Seths respuesta

Ok, creo que necesito volver a networkingactar mi pregunta 🙂 Tengo 3 repositorys. Un desarrollador, uno en Github y una producción. Por lo general, para actualizar la producción solo hago un push desde dev a github, git pull master de origen (desde github a producción) y funciona. Desafortunadamente, cambié los files en la producción sin esconder. ¿Cómo fuerzo sobrescribir en lugar de fusionar cuando bash un tirón?

Si desea replace por completo su sucursal local foo con los contenidos del origen de la sucursal remota / foo

git fetch origin git checkout foo git reset --hard origin/foo 

Si desea hacer otra cosa, modifique su pregunta. Sin embargo, podría agregar el repository de producción git como control remoto y fusionar los cambios en vivo, en lugar de lo que haya intentado.

Tienes que empujar desde la producción primero a github.

 git push origin yourbranch --force 

La fuerza se asegurará de que github tenga lo que tiene la producción.

Aquí están las posibilidades de lo que podrías hacer:

Necesitará get en su informe de desarrollo los cambios en el repository de implementación. En este punto, verá que la historia se está bifurcando (a través de git log --all --graph o gitk --all ).

 git fetch origin 

Ahora puede volver a establecer la base o fusionar para get sus últimos cambios posteriores a los realizados en el repository de producción. Esto le permitirá impulsar cambios en su repository de implementación en un momento posterior.

Los conflictos están ahí por una razón. Mírelos y resuélvalos, agregue y comprométase.

Si desea que los conflictos se resuelvan tomando lo que está en el lado de la producción, puede usar la estrategia "recursiva de ellos":

 git merge -s recursive -Xtheirs production/yourbranch 

Si no desea realizar ningún cambio de su lado, combine normalmente, pero cuando se detenga en los conflictos, obtenga el otro lado de la fusión, agréguelo y confirme.

 git merge production/yourbranch git checkout production/yourbranch -- . git submodules update #this is optional and can be skipped if you don't have any submodules git add -A git commit 

Ahora los subsiguientes empujones a github del desarrollo y los tirones de github en la producción funcionarán.

Puede restablecer la twig, pero eso supone que no desea mantener los cambios que realizó en el repository de desarrollo.

 git reset --hard production/yourbranch 

Espero que esto ayude.