git - 如何意外创建分离提交?
问题描述
我知道可以在分离的 HEAD 状态下创建分离提交。但是由于 git 本身的工作,这些提交是如何创建的呢?我的意思是无意的。我听说它与提交的不变性有关......
解决方案
听起来你只是在问你如何最终得到一个无法从任何分支访问的提交。有很多方法。
如果使用commit --amend
,则无法真正修改提交。取而代之的是一个新的提交,就像没有 一样--amend
,除了不同的父列表。(如果P
是常规提交P
的父级,则复制父级列表并将其用作新提交的父级列表。)然后将当前分支移动到P
无法访问的新提交(因为它没有用作家长)。除非P
仍然可以从其他分支访问,否则这就是您所说的“分离提交”。
或者你可以变基,重写任意数量的提交。同样,“重写”意味着创建新的提交,典型的变基可能会移动一个分支并使原始提交无法访问。
或者您可以使用git reset
“取消提交”更改;再次,提交并没有真正删除,它只是变得无法访问。
或者您可以简单地删除一个分支。
filter-branch
或者您可以使用或类似工具执行各种操作。
推荐阅读
- python - Django:通过单击按钮调用视图函数
- python - 如何在 Wordpress 上嵌入交互式 Jupyter Notebook?
- python - 在 Python 中加速成对距离矩阵计算
- javascript - 三个 JS:近距离平面中的奇怪渲染问题
- reactjs - React JS 打印用户的选择
- mysql - 解释性能模式 count_star
- android - 在继续之前等待所有字节(颤振)
- docker-compose - 将文件从项目文件夹复制到主机并在我的容器中使用它们
- spring-boot - 使用带有 Spring MVC 的 Camunda 引擎?
- sql - SQL 查询 - 检查两个不同的值