Git (Bit Bucket) fusiona los cambios de dos usuarios a la misma twig

He creado una twig en Git (bit bucket). Dos personas están modificando el mismo file. Una persona cometió el file. Otra persona también tiene cambios locales en el mismo file. La segunda persona debería ser capaz de fusionar su código sin perder su contenido y también las confirmaciones anteriores también deberían estar intactas. Busqué muchas opciones, pero pude encontrar una respuesta clara. Por favor ayúdame con esto.

Git no le permitirá (a less que lo haga) --force un set de confirmaciones a una twig remota a less que el encabezado de esa twig remota sea un antecesor de ese set de confirmaciones.

En otras palabras, si presionas, y la otra persona te persigue, la inserción de la otra persona fallará porque sus confirmaciones no son descendientes de tus compromisos. Tendrán que fetch el cambio, rebase sus compromisos sobre ese cambio (o merge , como una alternativa al cambio de base) y solo entonces podrán empujar (a condición de que el repository remoto no cambie aún más mientras ellos fueron rebases).

Sí, la segunda persona podrá confirmar sus cambios. Pero antes de comprometerse tendrá que pull los cambios de la primera persona. Después de tirar de los cambios si hay un conflicto de fusión, la segunda persona tiene que arreglar el conflicto y luego comprometerse. Sugerencias: trabajar en un mismo file al mismo time no es una buena idea. Casi siempre crea conflicto.

Bueno, tu problema es independiente del uso del proveedor de git (github, bitbucket, codebase, etc.)

Un posible flujo de trabajo para su caso es el siguiente.

Hay dos desarrolladores, Alice y Bob . Ambos modificaron el file parameters.yml con el siguiente contenido.

 # parameters.yml database_user: 'root' database_password: 'root' 

Alice agrega un parámetro para activar / desactivar la caching.

 # parameters.yml database_user: 'root' database_password: 'root' cache: true 

Mientras Bob agrega otro parámetro para activar / desactivar el modo de debugging en la aplicación.

 # parameters.yml database_user: 'root' database_password: 'root' debug: false 

Alice presiona los cambios de ella a la twig de super-cache . Después, Bob empuja sus cambios a la twig de super-cache , también. Sin embargo, su bash falló porque, como dijo @PSkocik, las confirmaciones de Bob no son descendientes de los compromisos de Alice .

Bob tiene que search los compromisos de la Alise antes de que empuje sus compromisos. Él elige hacer un pull con rebase git pull --rebase origin/super-cache

Bob tendrá un conflicto en parameters.yml . El file después de resolver el conflicto será

 # parameters.yml database_user: 'root' database_password: 'root' debug: false cache: true 

Ahora, Bob puede continuar con la fusión con git rebase --continue

Después de esto, Bob tiene todos los commits de la twig super-cache más sus commits.

Finalmente, Bob puede impulsar sus compromisos.

Puedes ver: Git rebase of Atlassian