git 签出 <branch> <file path> 与 <branch> 上的内容不匹配

git checkout <branch> <file path> does not match what is on <branch>

我对 git

有一个困惑的问题

main/development 我有一个文件,其中包含 UsersTable.tsx

的最新更改

在我的工作分支 chore/add-linting 上,我提前了一些提交,但我想从 main/development.

中提取 UsersTable.tsx 的最新代码

我执行了:

$ git pull origin main/development

# oh no, I have a couple merge conflicts

# I want this file to be whatever is exactly on `main/development`
$ git checkout main/development path/to/UsersTable.tsx

Updated 1 path from f59fed63

但是,文件不是main/development!它为我签出的版本仍然落后 main/development 并且有旧代码。

这是怎么回事?我做了 git fetchgit pull.

每当您需要恢复一个文件时,您可以考虑使用命令git restore instead of the old and confusing git checkout

你的情况:

git fetch
git restore -SW -s origin/main/development -- path/to/UsersTable.tsx

那样的话,你不拉,意思是不合并 origin/main/developmentchore/add-linting,所以你没有任何与管理器的合并冲突。

您只需从另一个分支的一个版本中恢复一个文件内容。