当我git checkout branch -- app/
期望被另一个分支的app文件夹的内容覆盖app文件夹中的所有本地文件时。但实际上,它会覆盖相同名称的文件,但不会删除仅存在于我的应用程序文件夹中的文件。并且结果文件夹与目标分支中的文件夹不同。为什么这样工作,以及如何在不保留旧文件的情况下检出整个文件夹?
答案 0 :(得分:2)
与树状路径一起使用时,git-checkout
从树中检出路径中匹配的文件。
它不触摸其他文件。如果您想完全从另一个分支复制该文件夹,则可能必须
git rm path
git commit
git checkout branch -- path
但是为什么您仍然需要这样做?
或者,我想您可以将存储库克隆到附近的另一个目录中,然后
git -C newrepo checkout branch
mv newrepo/path oldrepo/path
rm -r newrepo