git - 合并推送功能分支后,从主分支中删除功能分支的提交消息
问题描述
我们有一种做法,即在将功能分支的所有提交合并到主分支之前将其压缩,这样我们将在主分支中提交一个功能分支。但是我不小心将功能分支合并到 master 中而没有被挤压。有什么办法可以解决这个问题。
解决方案
如果您在合并该功能分支后没有在 master 上进行任何提交,您可以:
- 在您的本地存储库中硬重置
master
为合并之前的提交 - 压缩并合并您的功能分支
- 强制推送
master
并通知在该存储库上工作的任何其他成员,以便他们将自己的本地master
分支重置为该新master
HEAD。
那是:
git reset --hard <SHA1 before merge>
# squash+merge
git push --force
master
合并后我在分支中有 2 次提交。
但是那些我提交的地方,所以我知道我更改了哪些文件。
我仍然可以从上述方法重置我的分支,然后再次提交接下来的两个更改吗?
是的:它们可以被挑选出来master
并在新的HEAD上重播。
同样,一旦你强制 push ( git push --force
) 那个新的分支历史,你需要确保任何其他协作者知道历史变化,并相应地重置他/她自己的本地master
分支。
推荐阅读
- regex - 将所有 url 重定向到新域,但一些特定的 url
- cakephp - cakephp 在多个模型中重用加密/解密代码
- java - Spring Boot - null value in foreign key PostgreSQL database
- arrays - MongoDB(Mongoose)更新数组数组中的元素
- linux - 这个文件无法在 macOS 中执行吗?
- regex - 如何使用 sed 排除一个词
- c# - 在 asp.net 应用程序 webforms 中上传文件时找不到文件错误
- html - 当有人在网页的当前行中时,如何在导航栏中显示/保持悬停效果
- c - 在以二维数组为参数的函数中调用递归 void 会导致错误
- android - APK文件无法安装