Ordenar git commits

Me preguntaba cómo cambiar el order de mis commits en git (prioridad de las versiones), o definir una confirmación como "pnetworkingeterminada" para la clonación.

For example, i've three commits for my git project : -s0441254z5 | "new features in dev" (most recent) -p44mo47877 | "ENDED project" -g487er54ee | "First commit" (the oldest) 

Quisiera

 -p44mo47877 | "ENDED project" -s0441254z5 | "new features in dev" (most recent) -g487er54ee | "First commit" (the oldest) 

así que cuando alguien hace "git clonar" en mi proyecto, obtiene el "Proyecto finalizado". Sé que podría responder este ejemplo de otra manera, usando –branches, pero es solo un ejemplo para ilustrar mi pregunta. Entonces, ¿qué piensas de esto?

git rebase -i (o --interactive ) fue escrito precisamente para esto (y más …). Para cambiar el order de las últimas 3 confirmaciones, ejecuta

 git rebase -i HEAD~3 

Un editor mostrará instrucciones, reorderará las líneas, saldrá de su editor y dejará que git se encargue del rest.

Debería tener una sucursal que permanezca en la confirmación para la que desea que estén las personas que están clonando.

Puede hacerlo, mientras está en la twig con todas las confirmaciones, digamos que la confirmación deseada es la segunda a la más reciente (como en su ejemplo).

 git checkout -b development # creates a new branch to be cloned git reset --hard HEAD^ # resets the branch to the commit you want 

Luego, cuando las personas clonan su proyecto, pueden clonar su proyecto desde una sucursal específica .

 git clone --branch development <URL> 

También podría, (en lugar de tener los desarrolladores clonar el proyecto con una opción de bifurcación) cambiar a qué twig está apuntando HEAD. Aquí hay un ejemplo descriptivo de cómo lograr esto.

No veo por qué querría reorderar las confirmaciones cuando la clonación en esa confirmación específica le proporcionara el comportamiento que está buscando. Aunque, como se menciona en los comentarios, puede usar rebase para reorderar sus confirmaciones .

así que cuando alguien hace "git clonar" en mi proyecto, obtiene el "Proyecto finalizado".

Para esto, su twig actual (que ha prestado) en el control remoto debe apuntar a la confirmación. En github puede cambiarlo eligiendo otra twig "pnetworkingeterminada".