Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git合并不合并_Git_Github - Fatal编程技术网

git合并不合并

git合并不合并,git,github,Git,Github,我有一个主和“个人网站”的代码库,我的工作分支。我一直在反复尝试将主站点合并到PersonalSite分支中,但没有成功 这一次,我认为我已经把一切都理顺了,所以我做到了: git checkout master git pull git checkout PersonalSite git pull git merge master 看起来一切正常,它列出了我期望的一组文件,但存在冲突。冲突是正确的,正如预期的那样,所以我修复了它,执行了“git add”、“git commit”,然后是“g

我有一个主和“个人网站”的代码库,我的工作分支。我一直在反复尝试将主站点合并到PersonalSite分支中,但没有成功

这一次,我认为我已经把一切都理顺了,所以我做到了:

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 -- .