git checkout <branch> -- <path> 不会删除已删除的文件

3

我在git的开发分支上有一大堆更改,需要将这些更改rebase到主分支(master)上。由于rebase容易出错,因此我打算使用git checkout dev_branch -- .将所有这些更改复制到主分支(master),然后重新提交它们。这个方法很有效,但是当我执行git checkout时,在开发分支(dev_branch)中删除的文件没有从主分支(master)中删除。我是否缺少git checkout的参数,还是有更好的将树形结构复制到主分支(master)的方法?

2个回答

0

我遇到了同样的问题,但是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

欢迎提出简化建议 :)


0

如果你不使用rebase,那么你可以直接使用merge,它会做你想要做的事情:

git checkout dev_branch
git merge master

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接