我们遇到了一个非常奇怪的问题,很难解释,我会尽力说明。
Andy提交并推送文件build.ps1
中的更改。
鲍勃提交其他文件,然后拉。
鲍勃有一些冲突。 Git告诉他build.ps1
文件有更改,我觉得很奇怪,因为只有Andy更改了,但是好吧,为什么不呢?
Bob修复了冲突,然后知道自己尚未更改此文件,因此在合并提交之前取消暂存该文件。他不应该那样做,但是我想了解接下来会发生什么。
问题在于这样做已将文件还原到以前的状态,并且显然删除了文件的提交。
在日志中:a213826
是Bob试图合并的提交; b2067fa
是消失的Andy提交,而81bcc94
是合并提交。
> git log --pretty=format:'%h - %d %s (%cd) <%an>' --abbrev-commit
* 753c504 - (HEAD) ... (10/17/18 10:19:52) <Clark>
... other commits
* 81bcc94 - Merge (10/16/18 18:53:09) <Bob>
* b2067fa - build file (10/16/18 17:19:32) <Andy>
... other commits
* a213826 - members selection (10/16/18 17:35:46) <Bob>
... other commits
在a213826
中,我们可以看到Bob更改了一些文件:
> git show --name-status a213826
commit a2138265ba464afed6955f7a2976b9d868c6449e
Author: Bob
Date: Tue Oct 16 17:35:46 2018 +0200
members selection
M Viewer3D.DataAccess/DataAccess.cs
M Viewer3D.DataAccess/IDataAccess.cs
M Viewer3D/Content/view-panel.css
M Viewer3D/Controllers/DirectoryController.cs
M Viewer3D/Controllers/NotesController.cs
M Viewer3D/Scripts/class-panel.js
M Viewer3D/Scripts/view-panel-note-form.js
M Viewer3D/Views/Home/_PanelNotes.cshtml
在81bcc94
中,我们可以看到Bob在合并中解决了一些冲突,但是build.ps1
文件没有被修改:
> git show --name-status 81bcc94
commit 81bcc94cbe26859ca6b02d2908f6afc64aec1701
Merge: a213826 b2067fa
Author: Bob
Date: Tue Oct 16 18:53:09 2018 +0200
Merge
MM Viewer3D.DataAccess/DataAccess.cs
MM Viewer3D.DataAccess/IDataAccess.cs
MM Viewer3D/Content/view-panel.css
MM Viewer3D/Controllers/NotesController.cs
MM Viewer3D/Scripts/view-panel-note-form.js
但是,Tortoise Git讲述了一个非常不同的故事,并显示了build.ps1
文件的修改内容!
在文件的git log
中,不再出现b2067fa
提交:
> git log -p -- .\build_psake.ps1
commit 2d5eef1d1a13508621afe99bad8a2af05f3cc298
Author: Andy
Date: Tue Sep 4 15:25:12 2018 +0200
changes build path
(some diff)
commit 23dd900f71e88053b333b886491a2b5a9b971291
Author: Clark
Date: Mon Jun 18 09:19:34 2018 +0000
...
但是,如果我们log --follow
,则提交再次出现:
> git log --follow -p -- .\build_psake.ps1
commit b2067fac01e9b8d8ee4d6a88a91f4fd994efdf9e
Author: Andy
Date: Tue Oct 16 17:19:32 2018 +0200
build file
(some diff)
commit 2d5eef1d1a13508621afe99bad8a2af05f3cc298
Author: Andy
Date: Tue Sep 4 15:25:12 2018 +0200
changes build path
....
所以,我的问题:
请帮助我理解一切!
答案 0 :(得分:2)
在合并过程中,Bob取消了Andy在build.ps1上的差异,不是吗?
因此,如果您查看来自Bob的主分支,则Andy的提交没有更多变化。如果必须从Andy的角度来看,您会看到Andy添加而Bob删除了更改。
鲍勃的盒子上可能有一些局部变化,也许行尾吗?