在使用Git时是否会遇到这样的问题:
你正在使用Git进行版本控制,某天你接着昨天的工作了提交了N个提交,结果在合并远程分支的时候才发现原来你在工作之前没有注意到你要提交的分支状态
结果导致你本来要提交到hotfix分支的提交结果全部提交到了dev分支上,而远程分支你的同事已经提交了很多更改,如果遇到这种情况该怎么做呢?
- 从远程分支提取所有的提交(这时你本地的hotfix分支跟远程分支是一样的)
- 在hotfix分支上,使用cherry-pick合并原本属于hotfix分支的提交而提交到dev分支的提交(需要手动合并冲突)
- 切换dev分支,将属于hotfix分支的提交移除或直接恢复到最后一次dev分支历史上
- 切换hotfix分支并继续工作
由于cherry-pick没有使用过,所以以下是从创建仓库到完成重演的所有提交,主要是了解cherry-pick是如何工作的
git-scm#cherry-pick:可以理解为 再次提交/重演已经提交过的提交(可以在同一分支或不同分支)
参考:
git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
git cherry-pick 把提交到A分支的部分commit 再提交到B分支上
git cherry-pick 處理專案 pull request
Replay the last N git commits on a different branch
How to replay a commit onto a branch that already contains the commit?
测试数据下载:百度云盘
时间: 2024-07-29 11:21:29