1

假设A修改X。然后,A提交其更改并推送到原点。

然后B修改YB提交其更改。然后B从原点进行拉动(据说是由A所做的提交所做的更改)。然后B推到原点。

B完成的最后一次提交说B!对XY进行了更改,但B从未触及X有时, B所做的提交会覆盖AX所做的更改(好像A从未进行任何更改)。

这个案例(不止一次)发生在我和我的团队身上。

在此之前,我们做过的“最奇怪”的事情是:

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

  • 混帐。--cached, (修改 .gitignore), git add .

有任何想法吗?谢谢。

顺便说一句,我们最终创建了一个新的仓库,但我很好奇。

链接到真实的回购:

在本次提交中,laygr 代表B ,app/View/Requests/ view.ctp代表X。

难道是……?

难道是 sublime(一个著名的代码编辑器)没有重新加载 X 上的更改,当我提交时,git 认为我恢复了文件?

4

3 回答 3

2

这是您正在谈论的存储库的一部分。标记的提交是您所指的提交。该提交只是一个普通的提交,看起来像是由 Alicia 完成的显式合并提交。- 这里的问题到底是什么?

$ git log --boundary --graph --decorate --name-status d1f6bd97ca3483720f899e69a1bd7c5afd63b9c3 ^6911502a7f7914f1c2b9239288947395ca9866c0^
* commit d1f6bd97ca3483720f899e69a1bd7c5afd63b9c3
| Author: Alicia G <alicia.gonzalez.90@gmail.com>
| 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 <alicia.gonzalez.90@gmail.com>
| | Date:   Sat Nov 9 09:11:21 2013 -0600
| | 
| |     borro mi database porque lay lo borro de nuevo
| |   
| * commit 6911502a7f7914f1c2b9239288947395ca9866c0
| | Author: Lay <lay.gr@me.com>
| | 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 <alicia.gonzalez.90@gmail.com>
| | | Date:   Fri Nov 8 19:51:17 2013 -0600
| | | 
| | |     Merge branch 'development' of github.com:aliciacatalina/multiproveedores into development
| | |    
* | | commit d845fd6a28328421655718e0324f755a1bee7d65
| | | Author: Alicia G <alicia.gonzalez.90@gmail.com>
| | | Date:   Fri Nov 8 19:51:07 2013 -0600
| | | 
| | |     front
| | | 
| | | M app/Config/database.php
| | |    
| o | commit f04f996951c6e1a8caca926ac77a9252465f8559
|/ /  Merge: 0c582b1 e56eb22
| |   Author: ozgarza <ozielgarzalopez@gmail.com>
| |   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 <alicia.gonzalez.90@gmail.com>
|   Date:   Fri Nov 8 19:49:40 2013 -0600
|   
|       front
|  
o commit 8bae829dac9b892408cfb58afc9900d6026c593f
  Merge: 6ad499c ab68cd1
  Author: Ana Daniel <ana.daniel@icalialabs.com>
  Date:   Fri Nov 8 20:51:16 2013 -0600

      Merge branch 'development' of github.com:aliciacatalina/multiproveedores into development

一个文件的历史就更“无聊”了:

$ git log --name-status --oneline --graph origin/development -- app/View/Requests/view.ctp
* 9579fac datos de ordenes 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 solicitud
| 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 formas 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
于 2013-11-10T08:02:27.027 回答
0

一种可能是访问模式被 B 改变了。这种情况下,即使 B 没有改变 X 的内容,Git 也会将 X 标记为已更改。

如果是这样,你可以参考这个页面让 git 忽略这样的变化: How do I make Git ignore file mode (chmod) changes?

于 2013-11-10T07:09:30.017 回答
0

我完全按照你的描述做了:

$ 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
| | 
| | M   X
| |   
* | commit 9a660b557aab3a5adc802d9734ca53aa648fd643
|/  Author: B <B>
|   Date:   Sun Nov 10 08:24:29 2013 +0100
|   
|       modifyY
|   
|   M   Y
|  
* commit d7bdb719327d0e396c2c7553392101434b662c4e
  Author: A <A>
  Date:   Sun Nov 10 08:21:48 2013 +0100

      first

  A     X
  A     Y

第一次提交添加文件 X 和 Y,然后 B 更改 Y,而 A 更改 X。最后 B 进行拉取,这意味着合并先前的两个更改。合并本身并没有更改任何文件,它只合并现有的提交。

于 2013-11-10T07:39:21.043 回答