这里我做了什么:
- 从 master 创建开发分支;
- 修改了几个文件并提交;
- 将开发分支合并到带有
--no-commit
参数的master; git reset --hard
在开发分支中修改的几个文件上运行。结果主分支只包含来自开发分支的几个对象——即我已经部分合并了开发更改;- 我已经在 master 中提交了更改;
- 一段时间后,其他开发人员更新了主分支,为了更新我的开发分支,我将主分支合并到其中。
我已经准备好,在我之前的合并中我没有承诺掌握的我的开发对象将被来自 master 的文件覆盖。但是在输出中git log --follow dev-modified-file.txt
我看不到覆盖我的开发更改的提交。
在我的开发分支上运行 git log --follow dev-modified-file.txt
,我可以看到需要的提交以及开发修改。但是看不到提交恢复该更改(实际上无论如何都没有这样的提交)但是我的工作树包含dev-modified-file.txt
文件的主版本,尽管有提交添加开发代码,但没有提交删除该代码。
为什么?
主分支的代码是如何潜入我的开发分支的,没有留下任何痕迹?
PS如果我的描述不清楚,请在评论中提问,我很乐意相应地解释和更正这篇文章。
编辑:将我的 master 合并到开发中后,我看不到 master 和 development 分支之间的区别(我省略的更改消失了!)而且我看不到在开发分支中提交负责!
我相信这可能与合并策略有关……但是如何?你看,我的登录开发分支是什么样子的:
- 我添加了对文件的更改——工作文件夹中的文件包含这些更改。
- 我已经将 master 分支合并到 development 中——许多提交来到了 development 分支,我编辑的文件在 master 分支中变得相等,尽管没有提交负责!
合并后我在文件中添加了更改,更改消失了,没有留下任何痕迹!