git - 删除 git 中的分支是否会将其从历史记录中删除?

标签 git version-control branch revision-history

来自svn,刚开始熟悉git。

当一个分支在git中被删除时,它是否从历史中移除?

在 svn 中,您可以通过还原删除操作(反向 merge )轻松恢复分支。就像 svn 中的所有删除一样,分支从未真正被删除,它只是从当前树中删除。

如果该分支实际上已从 git 的历史记录中删除,那么从该分支 merge 的更改会发生什么情况?他们被保留了吗?

最佳答案

分支只是指向 git 中的提交的指针。在 git 中,每个提交都有一个完整的源代码树,它与 svn 的结构截然不同,在 svn 中,所有分支和标签(按照惯例)都位于存储库的单独“文件夹”中,旁边是特殊的“主干”。

如果分支在被删除之前被 merge 到另一个分支,那么当第一个分支被删除时,所有提交仍然可以从另一个分支访问。它们保持原样。

如果分支在没有 merge 到另一个分支的情况下被删除,那么该分支中的提交(直到从仍然可访问的提交中 fork 的点)将不再可见。

提交仍将保留在存储库中,并且可以在删除后立即恢复它们,但最终它们将被垃圾收集。

关于git - 删除 git 中的分支是否会将其从历史记录中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2613903/

相关文章:

git - 在 Mavericks OS X 10.9.2 中使用 Git 时出现 SSLRead() 错误

Android源码树切换分支

git - 是否可以让 GitHub 在文件夹中呈现 Markdown,名称不同于自述文件?

git - Heroku Git - fatal error : The remote end hung up unexpectedly

svn - 深层目录结构的稀疏 svn 更新

python - 导入错误: No module named vcs after manual install

sql - 数据库中大型集合的版本控制以用于撤消目的

version-control - TFS 分支模型支持长 QA(系统测试)周期

git - 重新设置一个分支,包括它的所有子分支

git - 在 Git 中 : Why is it good to commit often?