El estado de Git muestra la twig local adelante por X commits – debería ser solo 1

He estado buscando y probando varias soluciones aquí en la stack y en otros foros, pero parece que no se puede resolver este problema.

Git: Branch está adelante por X commits. No ayuda a hacer git pull

¿Por qué dice git que tengo 40 commits ahead cuando me parece estar actualizado y un push-pull (sin files) lo arregla?

¿Por qué dice "Su sucursal está por delante del origen / maestro mediante 857 confirmaciones" cuando necesito * extraer * el maestro de origen?

El problema general es que saqué un pago del sitio y luego tuve que hacer algunos cambios locales a las configuraciones (bases de datos, ubicaciones de API, etc.) y para evitar tener que esconder y volver a solicitar cada vez que avancé y comprometí los cambios locales en estos files Hice todo esto en 1 compromiso local como "confirmaciones de configuration local". Y en este momento, el estado de git muestra su ventaja por 1.

root@web1 web]# git status On branch master Your branch is ahead of 'origin/master' by 1 commits. 

Sin embargo, en el último mes hemos estado desarrollando y arreglando cosas. Todos trabajamos fuera de nuestras twigs separadas y nos fusionamos de nuevo en una twig de desarrollo y luego de allí a maestro, y así sucesivamente. Cuando las cosas están lists, aparezco en la producción y hago los cambios con "git pull". Esto parece haber funcionado bien, sin embargo, hoy noté que el estado ha cambiado.

 root@web1 web]# git status On branch master Your branch is ahead of 'origin/master' by 31 commits. 

Cuando miro el logging de git contra el origen / maestro, parece que estoy viendo las fusiones entrando como confirmaciones locales.

Pequeño fragment de logging:

 [root@web1 web]# git log origin/master..HEAD commit 336743eb411804487ad2f8a2e31701b094fb03f0 Merge: 58c8230 3478924 Author: root <root@web1.(none)> Date: Fri Feb 1 15:32:35 2013 -0500 Merge branch 'master' of http://gitrepo.com/Site commit 58c82303c523a3c9217dd677ba23582e168007cc Merge: 6c9de32 0e1c327 Author: root <root@web1.(none)> Date: Fri Feb 1 15:04:58 2013 -0500 Merge branch 'master' of http://gitrepo.com/Site commit 6c9de32c2fed77e442e73389aa8041f067a23cc4 Merge: ff586b4 52a7ea9 Author: root <root@web1.(none)> Date: Fri Feb 1 14:38:08 2013 -0500 Merge branch 'master' of http://gitrepo.com/Site 

Sospecho que mi repository ha sido "reenviado" correctamente y aún así estoy sentado 1 compromiso por delante después de cada extracción. Al hacer la diferencia contra el origen / maestro, puede ver que no tengo muchos cambios (aparentemente) solo las configuraciones. Esto fue a partir de los cambios de configuration originales y la confirmación local.

 [root@web1 web]# git diff origin/master..HEAD --name-only application/config/api.php application/config/config.php application/config/database.php 

He intentado los diversos enlaces anteriores y he intentado las búsquedas, más tiradas, etc. en vano. ¿Hay alguna manera de que pueda hacer que mi repository local avance rápidamente de manera tal que solo vea el compromiso local 1 que he realizado como siendo tan 'adelantado'? No puedo impulsar estos cambios para dominarlos, ya que esto provocaría que esos cambios se networkingujeran a otras instalaciones. Y luego supongo que después de resolver este problema, ¿cuál es la mejor manera de implementar, cambiar algunas configuraciones y poder actualizar continuamente? Desde mi punto de vista, el alijo funcionaría, pero esto en esencia mueve tus cambios fuera de lugar, luego puedes tirar, y luego volver a aplicar, pero no puedo permitirme el time de inactividad de este pequeño paso, especialmente si implica tener que resolver cualquier combinación conflictos.

O bien, ¿hay alguna forma de que pueda arrancar estos files de la confirmación para que pueda presionar para que todo esté orderado?

No puede hacer un avance rápido si tiene una confirmación local que no está en origin/master , sino que debe ser una fusión. Se realiza un avance rápido cuando se encuentra detrás del control remoto, sin cambios locales. Como tiene un cambio local, no puede avanzar rápidamente.

Tal vez lo que quiere es volver a establecer la base, lo que deshará temporalmente su confirmación local, avanzará rápidamente a la punta de la twig remota, y luego volverá a aplicar su confirmación local como la última confirmación.

 git rebase origin/master 

O bien, si está configurado como el valor pnetworkingeterminado de subida, y no está utilizando una versión anterior de Git, solo

 git rebase 

Algunas personas siempre usan el rebasado para extraer desde un control remoto, que es necesario si el control remoto está configurado para rechazar las asignaciones de fusión, pero debes entender lo que hace el rebasamiento antes de usarlo de cualquier forma, ver http://git-scm.com/book / es / Git-Branching-Rebasing y http://darwinweb.net/articles/the-case-for-git-rebase