我在git的开发分支上有一大堆更改,需要将这些更改rebase到主分支(master)上。由于rebase容易出错,因此我打算使用git checkout dev_branch -- .
将所有这些更改复制到主分支(master),然后重新提交它们。这个方法很有效,但是当我执行git checkout时,在开发分支(dev_branch)中删除的文件没有从主分支(master)中删除。我是否缺少git checkout的参数,还是有更好的将树形结构复制到主分支(master)的方法?
我在git的开发分支上有一大堆更改,需要将这些更改rebase到主分支(master)上。由于rebase容易出错,因此我打算使用git checkout dev_branch -- .
将所有这些更改复制到主分支(master),然后重新提交它们。这个方法很有效,但是当我执行git checkout时,在开发分支(dev_branch)中删除的文件没有从主分支(master)中删除。我是否缺少git checkout的参数,还是有更好的将树形结构复制到主分支(master)的方法?
我遇到了同样的问题,但是John的答案对我不起作用,因为我不想在历史记录中进行合并。以下是我的解决方案,希望能帮助其他人(确保您当前的工作目录是干净的,以避免添加不相关的文件):
git checkout -b tmp_branch master
git reset dev_branch
git add -A
git commit -m "Copying master's state"
git checkout dev_branch
git reset --hard tmp_branch
git branch -D tmp_branch
欢迎提出简化建议 :)
如果你不使用rebase,那么你可以直接使用merge,它会做你想要做的事情:
git checkout dev_branch
git merge master