Git显示文件之间的差异,但不会合并它们

Git显示文件之间的差异,但不会合并它们,git,merge,diff,Git,Merge,Diff,我有点被难住了。Git似乎都在告诉我 我的当前分支和远程分支之间存在差异,并且 我的当前分支和远程分支之间没有区别 其中一个是谎言,或者更可能,我误解了这种情况。这是怎么回事 (~/hbb.vm) debian $ git diff ..stage/master --name-only sites/all/libraries/attachment_email/attachment_email.php sites/all/modules/redirect/redirect.module sites

我有点被难住了。Git似乎都在告诉我

我的当前分支和远程分支之间存在差异,并且 我的当前分支和远程分支之间没有区别 其中一个是谎言,或者更可能,我误解了这种情况。这是怎么回事

(~/hbb.vm) debian $ git diff ..stage/master --name-only
sites/all/libraries/attachment_email/attachment_email.php
sites/all/modules/redirect/redirect.module
sites/all/modules/redirect/redirect.test
sites/all/themes/HBB/css/elements.css
sites/all/themes/HBB/templates/node--enterprise_blog.tpl.php

(~/hbb.vm) debian $ git merge stage/master
Already up-to-date.

merge命令告诉您当前分支包含所有 从stage/master分支提交,但不能从相反的分支提交。很可能 您当前的分支包含的更改不在stage/master中,并且是 反映在diff命令中的更改

 a-b----c
    \
     d--e
使用上面的存储库,如果我签出了e,尝试合并b将 正确地陈述事物是最新的。但要求不同的 我目前的状态和同样的观点,很可能会有不同 不保证存在,e可以恢复d的更改或e和 d可以是空的

顺便说一句,您的diff命令有点不正确。这个在树枝前面 名称导致将其解释为与 HEAD..stage/master,但diff对单个提交进行操作,而不是 范围。这是一个比较常见的错误,因此diff已调整为 考虑到这一点,但它仍然会产生误导性的结果。在这种情况下,它将 显示与预期相反的更改显示所需的更改 从您当前的状态转到stage/master,而不是 将状态从舞台/主舞台转换为舞台所反映的状态 您当前分支的提示。后者更有可能是你以前的样子
应为。

merge命令告诉您当前分支包含所有 从stage/master分支提交,但不能从相反的分支提交。很可能 您当前的分支包含的更改不在stage/master中,并且是 反映在diff命令中的更改

 a-b----c
    \
     d--e
使用上面的存储库,如果我签出了e,尝试合并b将 正确地陈述事物是最新的。但要求不同的 我目前的状态和同样的观点,很可能会有不同 不保证存在,e可以恢复d的更改或e和 d可以是空的

顺便说一句,您的diff命令有点不正确。这个在树枝前面 名称导致将其解释为与 HEAD..stage/master,但diff对单个提交进行操作,而不是 范围。这是一个比较常见的错误,因此diff已调整为 考虑到这一点,但它仍然会产生误导性的结果。在这种情况下,它将 显示与预期相反的更改显示所需的更改 从您当前的状态转到stage/master,而不是 将状态从舞台/主舞台转换为舞台所反映的状态 您当前分支的提示。后者更有可能是你以前的样子
期待。

你的假设1是正确的:你处于领先地位和舞台/大师地位之间存在差异

其中任何一项都告诉您:

吉特差异舞台/主舞台 git diff头部..舞台/主舞台 git diff阶段/主。。 git diff舞台/主舞台 1代表2,3代表4。3与1正好相反

@qqx提到的git diff stage/master将进一步告诉您工作树和stage/master之间的任何差异。与1或3相比,您还将看到未提交的更改

你的想法不正确。2.:头和舞台/大师之间没有区别

相反,git merge stage/master告诉您,stage/master中没有尚未在HEAD中或未合并到HEAD的提交

这也可能告诉您:

git日志…阶段/主-樱桃拾取 这可能会告诉您在合并stage/master之后导致差异的提交:

git日志阶段/主-择优挑选
你的假设1是正确的:在你的位置和舞台/大师之间有差异

其中任何一项都告诉您:

吉特差异舞台/主舞台 git diff头部..舞台/主舞台 git diff阶段/主。。 git diff舞台/主舞台 1代表2,3代表4。3与1正好相反

@qqx提到的git diff stage/master将进一步告诉您工作树和stage/master之间的任何差异。与1或3相比,您还将看到未提交的更改

你的想法不正确。2.:头和舞台/大师之间没有区别

相反,git merge stage/master告诉您,stage/master中没有尚未在HEAD中或未合并到HEAD的提交

这也可能告诉您:

git日志…阶段/主-樱桃拾取 这可能会告诉您在合并stage/master之后导致差异的提交:

git日志阶段/主-樱桃图片 K
有没有一种方法可以显示更多的信息?比如文件是否已被删除或修改,以及它位于哪个分支?@doub1ejack:这最好作为一个新问题来问。这可能会引起更多的关注,而且用这种方式比用评论的方式得到更好的回答。我对你关于分支机构名称的观点还有另一个看法。谢谢。有没有一种方法可以显示更多的信息?比如文件是否已被删除或修改,以及它位于哪个分支?@doub1ejack:这最好作为一个新问题来问。这可能会引起更多的关注,而且用这种方式比用评论的方式得到更好的回答。我对你关于分支机构名称的观点还有另一个看法。谢谢