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 fetch
和 git 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/development
到 chore/add-linting
,所以你没有任何与管理器的合并冲突。
您只需从另一个分支的一个版本中恢复一个文件内容。
我对 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 fetch
和 git 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/development
到 chore/add-linting
,所以你没有任何与管理器的合并冲突。
您只需从另一个分支的一个版本中恢复一个文件内容。