git 结帐文件夹究竟有什么作用?

What exactly git checkout folder does?

当我git checkout branch -- app/希望用另一个分支的app文件夹的内容覆盖我在app文件夹中的所有本地文件时。但实际上它会覆盖同名文件,但不会删除仅存在于我的应用程序文件夹中的文件。并且生成的文件夹与目标分支中的文件夹不同。为什么它以这种方式工作以及如何在不留下旧文件的情况下检出整个文件夹?

当与树状结构和路径一起使用时,git-checkout 从树中检查路径中的匹配文件。

不涉及其他文件。如果你想从另一个分支完全复制那个文件夹,你可能必须

git rm path
git commit
git checkout branch -- path

但是为什么你需要这样做呢?

或者,我想您可以将存储库克隆到附近的另一个目录中,然后

git -C newrepo checkout branch
mv newrepo/path oldrepo/path
rm -r newrepo