合并时从存储库中删除文件会使它们消失
Removing files from repository while merging makes them disappear
这是一个演示问题的测试仓库:https://bitbucket.org/vektor330/bugtest
事件的顺序是这样的:
- 添加一些初始提交。
- A 将
Conflict
和 source
添加到 develop
。
- B 将
Conflict
添加到 master
。
- B 将
develop
合并到 master
,使用 "mine" 策略解决 Conflict
上的冲突,并从存储库中删除 source
。现在这是一个空提交,但可以提交并推回远程。
结果是:source
已从存储库中完全消失。出现在7dfa23e,repo里有它出现的日志,然后悄悄消失在5080a24,无影无踪
我希望提交 5080a24 显示“source
已删除”,Git 或我的期望有什么问题?
我认为您混淆了 "What is stored in Git" 和 "What BitBucket shows you"。有两个独立的父项,您可以通过单击 BitBucket 界面右侧的链接与每个父项进行比较。
why this wouldn't show as the "content of the merge commit".
您可以通过依次 select 合并提交和两个 parents 中的每一个来可视化合并提交的内容。
当您 select(在 SourceTree 中)开发分支中的一个(除了合并提交)时,您清楚地看到 files_to_lose/source
已被删除:
Why does the commit itself not show the missing file?
因为在合并提交的情况下,有两个 parents 可以比较。 SourceTree 不提供针对这两个 parents.
的差异
GitMac 或 Windows 的 Hub,当您 select 仅 合并提交时:
简而言之,这不是关于 Git,而是关于您正在使用的 Git GUI。
我不确定您的问题是关于 bitbucket 还是关于 git。但是,在 git 中,您需要 运行 git show
和 -m
标志才能显示合并提交。添加该标志会显示已删除的文件:
$ git show --summary -m 5080a24
commit 5080a24f6585af2b38161ba55ec4835c7171634d (from 7dfa23e1bfc0a460bfe8071e3623ce9b5959a785)
Merge: a8a08dc 7dfa23e
Author: Matej VitaÌsek <vektor330@gmail.com>
Date: Wed Jul 8 09:58:05 2015 +0200
Hahaaa, a hidden files commit!
delete mode 100644 files_to_lose/source
$
这是一个演示问题的测试仓库:https://bitbucket.org/vektor330/bugtest
事件的顺序是这样的:
- 添加一些初始提交。
- A 将
Conflict
和source
添加到develop
。 - B 将
Conflict
添加到master
。 - B 将
develop
合并到master
,使用 "mine" 策略解决Conflict
上的冲突,并从存储库中删除source
。现在这是一个空提交,但可以提交并推回远程。
结果是:source
已从存储库中完全消失。出现在7dfa23e,repo里有它出现的日志,然后悄悄消失在5080a24,无影无踪
我希望提交 5080a24 显示“source
已删除”,Git 或我的期望有什么问题?
我认为您混淆了 "What is stored in Git" 和 "What BitBucket shows you"。有两个独立的父项,您可以通过单击 BitBucket 界面右侧的链接与每个父项进行比较。
why this wouldn't show as the "content of the merge commit".
您可以通过依次 select 合并提交和两个 parents 中的每一个来可视化合并提交的内容。
当您 select(在 SourceTree 中)开发分支中的一个(除了合并提交)时,您清楚地看到 files_to_lose/source
已被删除:
Why does the commit itself not show the missing file?
因为在合并提交的情况下,有两个 parents 可以比较。 SourceTree 不提供针对这两个 parents.
的差异GitMac 或 Windows 的 Hub,当您 select 仅 合并提交时:
简而言之,这不是关于 Git,而是关于您正在使用的 Git GUI。
我不确定您的问题是关于 bitbucket 还是关于 git。但是,在 git 中,您需要 运行 git show
和 -m
标志才能显示合并提交。添加该标志会显示已删除的文件:
$ git show --summary -m 5080a24
commit 5080a24f6585af2b38161ba55ec4835c7171634d (from 7dfa23e1bfc0a460bfe8071e3623ce9b5959a785)
Merge: a8a08dc 7dfa23e
Author: Matej VitaÌsek <vektor330@gmail.com>
Date: Wed Jul 8 09:58:05 2015 +0200
Hahaaa, a hidden files commit!
delete mode 100644 files_to_lose/source
$