git - git 如何处理来自现已删除的分支的先前非快进 merge ?

标签 git branching-and-merging

假设我有我的 master 分支,并且我创建了 feature-x 分支来处理新功能。我对 feature-x 进行了多次提交,从 master 重新调整 feature-x 的基础,然后从 feature-x 分支到 master 分支进行非快进 merge 。

现在,如果我删除 feature-x 分支,我的提交历史记录会发生什么?

我正在进行非 ff merge ,因为在阅读了一篇文章(我同意)后,通过进行非 ff merge 可以更轻松地跟踪功能特定的更改和功能的完整生命周期。

最佳答案

如果我理解正确的话, merge 后您的历史记录看起来像这样:

A-----------E
 \         /
  B---C---D

这里,D是rebase后feature-x分支的头部,E是 merge 后master分支的头部。当你删除 feature-x 分支时,master 会发生什么?没有什么。分支只是指向一个特定修订的指针(加上一些附加数据,例如引用日志),当您删除它时,您丢失的只是指针,主版本将与删除之前完全相同。

话虽这么说,我不确定你为什么要进行 rebase 和 merge 。如果你想保持历史清晰,只需使用merge即可,不需要rebase。

关于git - git 如何处理来自现已删除的分支的先前非快进 merge ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514019/

相关文章:

javascript - 在哪里可以找到 Spring Petclinic 的 Angular JS fork ?

git - 用于检查 git 更改然后遍历更改文件的 Shell 脚本?

git - 通过 "IP"端口 22 和 client_loop : send disconnect: Broken pipe on cloning a repo from bitbucket 重置连接

git - 如何使用 Github Desktop 克隆非 github 托管的存储库

git - merge 后是否应该删除分支?

version-control - TFS 2012 检查分支是否已合并

mercurial - 推送新分支时的新远程头

Git 在推送分支之前获取最新更改

svn - Subversion - 主干真的是主要开发的最佳场所吗?

python - 如何调试/正确设置 git-multimail