git - 一直压缩提交到最初的叶子 2 次提交
问题描述
我正在学习 git 并尝试挤压。我想压缩主人的所有提交,只留下最初的提交。例如,我的提交历史如下所示:
2c825e339b60702b7b48c2ea022e473341d89a7d (HEAD -> master) another edit
f676a10db6a0cfe3cebb8f84aad971b481483181 second file
dc55b957a94bc4a3d6c1b6d8c134407aa4c8316c initial
之后我跑了git rebase -i dc55b957a94bc4a3d6c1b6d8c134407aa4c8316c
网络上描述的通常方法是将 every 替换pick
为squash
,但第一个。之后,我会看到这个提交历史:
2067070140c38f8ecf5f70894e6267bfee614d85 (HEAD -> master) second file
dc55b957a94bc4a3d6c1b6d8c134407aa4c8316c initial
为什么squash
一直到初始提交都没有工作?
pick statement
此外,如果我再次运行相同的 squash 命令,交互窗口中只有 1 个。将其更改为squash
触发错误并使其pick
不执行任何操作。我已经找到
git reset --soft HEAD~1
git commit -m "1.0.0"
成为仅压缩 2 次提交的有效方法。我究竟如何使用git rebase --squash
来达到相同的结果?
解决方案
您在 rebase 命令中指定的提交是您要修改或移动的第一个提交的父级。这对于存储库的第一次提交来说很困难,因为它没有任何父级。相反,您可以使用以下--root
选项:
git rebase -i --root
这应该给你所有的提交。
推荐阅读
- java - Spring @validated 没有级联到字段
- javascript - 让 Netlify 访问 Github 上 .gitignore 隐藏的文件
- jquery - jQuery选择中的不同元素类型
- reactjs - React useParams undefined 用于编辑用户配置文件
- python - 如何在 hitbox 中获取我的图像列表?
- c# - WPF 应用程序重启
- css - 如何在 JavaFX 中的运行时更改 primaryStage css(使用另一个类中的代码)
- ios - React Native 60 中出现无法识别的字体系列错误
- opencv - 在 Mac 中使用不同版本的 g++ 运行 OpenMP
- javascript - 如何使用 Node.js 在 Firestore 中获取查询的特定索引