git合并不合并
我有一个主和“个人网站”的代码库,我的工作分支。我一直在反复尝试将主站点合并到PersonalSite分支中,但没有成功 这一次,我认为我已经把一切都理顺了,所以我做到了:git合并不合并,git,github,Git,Github,我有一个主和“个人网站”的代码库,我的工作分支。我一直在反复尝试将主站点合并到PersonalSite分支中,但没有成功 这一次,我认为我已经把一切都理顺了,所以我做到了: git checkout master git pull git checkout PersonalSite git pull git merge master 看起来一切正常,它列出了我期望的一组文件,但存在冲突。冲突是正确的,正如预期的那样,所以我修复了它,执行了“git add”、“git commit”,然后是“g
git checkout master
git pull
git checkout PersonalSite
git pull
git merge master
看起来一切正常,它列出了我期望的一组文件,但存在冲突。冲突是正确的,正如预期的那样,所以我修复了它,执行了“git add”、“git commit”,然后是“git push”。但现在,当我查看git日志时,它只显示了一个提交,没有代码更改,只有一个冲突
现在,当我从“PersonalSite”分支运行“git merge master”时,它会说“已经是最新的”。但情况显然不是这样,因为我尝试合并的所有更改实际上都没有合并。我该怎么做才能让master在此时真正合并?合并不会显示除冲突解决方案之外的任何更改 要查看合并两侧的差异,请执行以下操作:
git diff head^..
及
另一方面
希望这有帮助。通过修复冲突并提交合并冲突,您已经完成了合并。Git会在必要时添加合并提交,这很正常,但它们不会记录任何内容,除非合并发生了,以及在发生冲突时合并了哪些文件。如果您更仔细地查看日志,您将看到实际上有来自master的提交 编辑: 好的,试试这个。您不必使用merge命令,只需将master拉入PersonalSite即可
git checkout PersonalSite
git pull origin master
看看能给你什么。如果它说是最新的,那么您已经正确地合并了
如果您像以前那样在本地合并内容,那么您需要确保本地跟踪分支是最新的。始终指定要从中提取的分支名称
git pull origin master
git pull origin PersonalSite
假设您实际合并了要合并的内容(根据您的解释,这是可能的,但很难说),您仍然不会在
git log
的输出中看到差异,只会看到提交消息。即使使用-p
告诉git log
显示差异,合并提交的差异通常为空,或者可能显示冲突解决方案。这是因为在语义上,只有冲突解决是合并提交的一部分;其他更改是其他提交的一部分
如果希望git log
显示合并提交的全部效果,可以使用:
git log -p -m -c
选项的功能:
指示它显示差异,而不仅仅是提交消息李>-p
也告诉它显示合并提交的差异;及-m
告诉它将两个差异合并为一个以进行合并提交-c
gitk
中的diff视图也会做同样的事情。我现在意识到这是一个更老的问题,但我刚刚遇到了我认为是相同的问题。我无法用其他答案中的任何命令组合来解决它,但我确实通过在我想要合并到的分支中运行来解决它:
git checkout <desired_branch_name> -- .
我在这里找到了答案:
我之所以说它没有合并,是因为主分支中的某些更改即使在合并后也没有反映在PersonalSite分支中。。。
git checkout <desired_branch_name> -- .
git checkout master -- .