如何解决为什么合并不能快速进行?
| 从Git书中: \“如果当前分支尚未与另一个分支分离,则当前分支中存在的每个提交都已包含在另一个分支中,那么git只会执行“快进” 我正在尝试重现这种情况,但这不会产生任何快进:$ git init
Initialized empty Git repository in /work/fun/git_experiments/.git/
$ echo initial > readme && git add readme && git commit -a -m Created
[master (root-commit) 74495b9] Created
1 files changed,1 insertions(+),0 deletions(-)
create mode 100644 readme
$ git branch b1
$ echo modified > readme && git commit -a -m \"Modified\"
[master d40d5fb] Modified
1 files changed,1 deletions(-)
$ git checkout b1
Switched to branch \'b1\'
$ echo modified > readme && git commit -a -m \"Modified\"
[ b1 46fd337] Modified
1 files changed,1 deletions(-)
$ git merge master
Merge made by recursive.
$
解决方法
因为尽管两个提交的内容是相同的,但实际上它们不是相同的提交(注:一个是提交ID
d40d5fb
,另一个是46fd337
)。因此,分支b1
包含不在master
中的提交,因此并非b1
中的所有提交都是master
的后代。
, 提交的内容相同,但提交本身不同。在这种情况下,您要将ѭ1合并为46fd337
,因此它需要执行正确的合并,以单头将这两个提交绑定在一起。两个人独立编写完全相同的提交的唯一方法是名称,电子邮件和时间戳是否相同。
尝试重新设置基准,这将压榨引入相同差异的提交。
, 我想我明白:
$ git checkout master
Switched to branch \'master\'
$ git merge b1
Updating d40d5fb..fd337c3
Fast-forward
$
当我将更改合并回master时,它会被快速转发,因为相同的确切提交仅发生在b1上……而我的示例并非真正相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。