在使用Git提交merge的时候可能会遇到这样的情况,当你fork一个repository后,然后在自己的repository的某个branch (如master)已经commit很多次,当时并没有将自己fork的repository和origin repository 进行同步,如果,你现在进行merge 则发现由于之前commit的并没有进行同步,而现在又需要将最新的commit进行同步,那怎么办?
首先 复制一个当前的branch 称之为 cpb ,进入cpb 进行reset 还原到最初fork的状态,然后,在cpb中commit最新的修改,最后,进行merge,使用到的命令如下:
- 创建并切入到cpb branch
git checkout -b cpb
- 查看commit tree
git log --oneline --decorate --graph
- 返回到fork的状态,并强制提交
git reset --hard cab17e8c4abb38e41a3f1e892591b5f9bf2e6632
git push -f ssh cpb
- 更新并提交
git add file
git commit -m "add file"
git push ssh cpb
- 最后发起 merge request