1

我的当前分支从另一个分支中的特定路径进行了一些更改。(有一个需要带来的依赖。)

我最初使用以下命令带来了这些更改:

git checkout master
git checkout -b new_branch
git checkout other_feature path/to/dependency

现在我需要取消选择这种依赖关系,或者至少是它的某些方面(其中的子路径path/to/dependency)。

我已经运行git diff --name-status master..new_branch path/to/dependency,它按预期显示了差异。

但是,git checkout master path/to/dependency不会成功将此目录的内容还原为 master 的内容。为什么会这样?

4

1 回答 1

1

以防万一,请尝试:

 git checkout --force  master path/to/dependency/subpath/to/revert
 # or:
 git checkout --ours master path/to/dependency/subpath/to/revert

git checkout手册页

-f
--force

切换分支时,即使索引或工作树与 HEAD 不同,也要继续。这用于丢弃本地更改。

从索引中检出路径时,不要在未合并的条目上失败;相反,未合并的条目将被忽略。

第一个选项“--force”应该是您正在寻找的,但如果涉及合并,那么第二个选项(--ours不兼容--force)也可以提供帮助。

--ours
--theirs

从索引中检出路径时,请检出阶段#2( ours) 或#3( theirs) 以获取未合并的路径。

于 2013-03-18T11:43:48.250 回答