1

我目前正在试验 git 并遇到以下问题。我用一个名为 f1 的函数创建了一个 python 文件,并将其保存在 main.py 下,并将其提交到 master 分支。然后我创建了一个名为 b1 的分支,返回到 master 并将该函数的名称更改为 f2(没有其他更改)。回到分支 b1,我添加了第二个名为 new_function 的函数。之后,我尝试将 b1 重新设置为 master。

我惊讶地发现有冲突。为什么git没有看到我只是在master中将f1的名称更改为f2?

我做错什么了吗?任何建议表示赞赏。

4

2 回答 2

2

Git - 与几乎任何其他 VCS 一样 - 不知道被跟踪内容的语义,因此它无法猜测什么是冲突的,什么不是。如果您合并或 rebase 两个都更改了同一个文件的历史,这是一个冲突,您必须解决它。为此使用属性工具(例如 P4Merge,我所知道的最好的免费差异/合并工具),解决冲突很容易,或者在您的情况下,甚至可能没有真正的冲突。

于 2016-08-08T13:53:32.627 回答
2

你没有做错任何事。Git 只是在防止任何潜在的工作丢失。此时,由于您的分支中的功能已f1更改为- 您的分支仍将其称为. 所以,当你这样做时,git 会简单地问你“所以你想要它是什么名字,或者别的什么。f2masterb2f1git rebasef1f2

于 2016-08-08T13:46:19.473 回答