¿Por qué git está cometiendo esto como si yo hubiera hecho los cambios, de hecho fueron hechos por otra persona?

Supongamos que A modifica X. Entonces, A comete sus cambios y empuja al origen.

Entonces B modifica Y. B comete sus cambios. Entonces B realiza un jalón (supuestamente llevando los cambios realizados por la confirmación hecha por A ) desde el origen. Entonces B empuja al origen.

El último commit hecho por B dice que B ! realizó los cambios en X e Y , pero B nunca tocó X. Algunas veces, la confirmación hecha por B sobrescribiría los cambios realizados por A a X (como si A nunca hubiera hecho ningún cambio).

Este caso estaba sucediendo (más de una vez) para mí y mi equipo.

Antes de eso, las cosas "más extrañas" que hacíamos eran:

  • git update-index –assume-unchanged path / to / file

Y

  • git rm. –cached, (modify .gitignore), git add.

¿Algunas ideas? Gracias.

Por cierto, terminamos creando un nuevo repository, pero tengo curiosidad.

Enlace al repository real:

En este compromiso , laygr significa B y la aplicación / View / Requests / view.ctp representa X.

Podría ser…?

¿Podría ser que sublime (un editor de código conocido) no recargó los cambios en X y cuando hice mi commit, git pensó que revertí el file?

Esta es la parte de su repository de la que está hablando. El compromiso marcado es al que te refieres. Ese compromiso es solo un compromiso ordinario y el que se ve como una fusión explícita cometida por Alicia. – ¿Cuál es exactamente la pregunta aquí?

 $ git log --boundary --graph --decorate --name-status d1f6bd97ca3483720f899e69a1bd7c5afd63b9c3 ^6911502a7f7914f1c2b9239288947395ca9866c0^ * commit d1f6bd97ca3483720f899e69a1bd7c5afd63b9c3 | Author: Alicia G <[email protected]> | Date: Sat Nov 9 09:41:51 2013 -0600 | | tabs styling for advanced search | | M app/View/Requests/view.ctp | * commit 468d6f3b36a11659c96e8b6e2adc3b8844dba63f |\ Merge: 849a468 6911502 | | Author: Alicia G <[email protected]> | | Date: Sat Nov 9 09:11:21 2013 -0600 | | | | borro mi database porque lay lo borro de nuevo | | | * commit 6911502a7f7914f1c2b9239288947395ca9866c0 | | Author: Lay <[email protected]> | | Date: Sat Nov 9 04:32:46 2013 -0600 | | | | busueda super eficiente y resultados agrupados <<=================== | | | | M app/Controller/ProductsController.php | | M app/Controller/SupplierServicesController.php | | A app/Lib/ProductResult.php | | M app/Model/Product.php | | M app/Model/Supplier.php | | M app/View/Requests/view.ctp | | M app/webroot/js/requests-view-partial.js | | * | commit 849a468c067012f423969e596b3e2b573ff18e3c |\ \ Merge: d845fd6 f04f996 | | | Author: Alicia G <[email protected]> | | | Date: Fri Nov 8 19:51:17 2013 -0600 | | | | | | Merge branch 'development' of github.com:aliciacatalina/multiproveedores into development | | | * | | commit d845fd6a28328421655718e0324f755a1bee7d65 | | | Author: Alicia G <[email protected]> | | | Date: Fri Nov 8 19:51:07 2013 -0600 | | | | | | front | | | | | | M app/Config/database.php | | | | o | commit f04f996951c6e1a8caca926ac77a9252465f8559 |/ / Merge: 0c582b1 e56eb22 | | Author: ozgarza <[email protected]> | | Date: Fri Nov 8 19:50:44 2013 -0600 | | | | Merge branch 'development' of https://github.com/aliciacatalina/multiproveedores into development | | o | commit e56eb22ef799c275b4d254a9db154c8a96529035 / Merge: 7f518fd 678bfcf | Author: Alicia G <[email protected]> | Date: Fri Nov 8 19:49:40 2013 -0600 | | front | o commit 8bae829dac9b892408cfb58afc9900d6026c593f Merge: 6ad499c ab68cd1 Author: Ana Daniel <[email protected]> Date: Fri Nov 8 20:51:16 2013 -0600 Merge branch 'development' of github.com:aliciacatalina/multiproveedores into development 

El historial del único file es aún más "aburrido":

 $ git log --name-status --oneline --graph origin/development -- app/View/Requests/view.ctp * 9579fac datos de orderes en orders index | M app/View/Requests/view.ctp * e6818f0 orders view | M app/View/Requests/view.ctp * da88164 requests view | M app/View/Requests/view.ctp * 42eceb9 removal of search by id | M app/View/Requests/view.ctp * feabe49 view de requests OTRA VEZ, GRACIAS LAY | M app/View/Requests/view.ctp * d1f6bd9 tabs styling for advanced search | M app/View/Requests/view.ctp * 6911502 busueda super eficiente y resultados agrupados | M app/View/Requests/view.ctp * 6ad499c view de request | M app/View/Requests/view.ctp * 7f518fd front | M app/View/Requests/view.ctp * a550ba1 tabs for advanced search | M app/View/Requests/view.ctp * f4763b0 aoeu | M app/View/Requests/view.ctp * b1d2544 refactor de como funcionas las forms para productos | M app/View/Requests/view.ctp * dad790f title fix | M app/View/Requests/view.ctp * 33f1b87 avance de búsqueda de proveedores | M app/View/Requests/view.ctp * 85cac04 actions | M app/View/Requests/view.ctp * 5f095dd table styles | M app/View/Requests/view.ctp * df636f6 Login y asignación automática de requests a usuarios. A app/View/Requests/view.ctp 

Una posibilidad es que el modo de acceso haya sido cambiado por B. En este caso, Git marcará X como cambiado incluso si B no cambió el contenido de X.

Si es así, puede consultar esta página para que git ignore dichos cambios: ¿Cómo hago para que Git ignore los cambios en el modo de file (chmod)?

Hice exactamente lo que describes:

 $ git log --name-status --graph --decorate * commit af88faba5e3f05c23b466796e153cb3202fd2e42 (HEAD, master) |\ Merge: 9a660b5 a2fb37d | | Author: B <B> | | Date: Sun Nov 10 08:24:46 2013 +0100 | | | | Merge branch 'master' of <remote> into master | | | * commit a2fb37d566e820f9ebcf456bd213d84f14b14321 | | Author: A <A> | | Date: Sun Nov 10 08:23:08 2013 +0100 | | | | modifyX | | | | MX | | * | commit 9a660b557aab3a5adc802d9734ca53aa648fd643 |/ Author: B <B> | Date: Sun Nov 10 08:24:29 2013 +0100 | | modifyY | | MY | * commit d7bdb719327d0e396c2c7553392101434b662c4e Author: A <A> Date: Sun Nov 10 08:21:48 2013 +0100 first AX AY 

La primera confirmación agrega los files X e Y, luego B cambia Y mientras que A cambia X. Finalmente B realiza una extracción que implica una combinación entre ambos cambios previos. La fusión en sí misma no cambió ningún file, solo combina las confirmaciones existentes.