如何将分支上的整个子目录还原为主目录中的子目录?

How can I revert an entire subdirectory on my branch to be what it is on main?

我在拉取请求中有一个分支。但是,我提交了一些我不想要的更改,因此它会显示如下更改:

package.json
yarn.lock
packages/
  some-package/
    a.ts
    b.ts
    styles/
      c.css

我想将 整个 packages/** 目录恢复到我的 PR 打开之前的状态

如何做到这一点?

git restore --source=main ./packages
git add packages
git commit -m "Remove accidentally committed packages"
# Optionally git push