¿Por qué necesito usar Origin / Master en lugar de Master en Rebase?

$ git --version git version 1.7.1 $ git branch -avv * master 017Fcc0 [origin/master] xxxx remotes/origin/HEAD -> origin/master 

Entiendo que el origen / maestro es el nombre de la ruta de la twig maestra remota y el maestro es mi nombre de la sucursal local. Necesito combinar múltiples mis commits locales en uno y luego enviarlo al server remoto con la última timestamp. Los siguientes tres pasos me sirven, pero no entiendo por qué necesito usar origen / maestro en lugar de maestro .

  a) git rebase --ignore-date origin/master b) git rebase -i origin/master c) git push origin master:master 

No necesita usar el origen / maestro para combinar múltiples commits en uno. Pero es una buena forma de hacerlo para evitar tener que sobreescribir el historial en el origen.

Por ejemplo, si su historial se ve así:

 5abcde Commit 5 [master] [HEAD] 4abcde Commit 4 3abcde Commit 3 2abcde Commit 2 [origin/master] 1abcde Commit 1 

Y tu maestro apunta a 5abcde y puntos de origen / maestro a 3abcde . Si ejecuta git rebase master , rebase su position actual (que probablemente ya sea maestra) en la misma position, efectivamente sin hacer nada.

Ejecutando git rebase origin/master o git rebase 2abcde aplicaría los commit que tienes (3,4,5) después del commit (2) – y si especificas el flag -i te da la opción de squash / fixup / skip / reword / drop / pick the commits 3,4,5 respectivamente.

La documentation de Git es realmente muy buena para explicar cómo funciona Rebase: https://git-scm.com/docs/git-rebase

Tal vez sea útil leer un poco más sobre cómo funciona Git con respecto a los controles remotos: https://git-scm.com/book/es/v2/Git-Basics-Working-with-Remotes