我在一个名为X的git仓库中做了一些工作,它有一个子模块Y。我对X中的文件进行了一些更改,希望保留这些更改,但我对子模块Y进行的更改现在想要撤销。因此,我想要撤销我对子模块所做的所有本地更改。
我尝试了git checkout -- ../dep/libY
,但没有任何变化。
Git状态显示:
modified: ../dep/libY (modified content)
我在一个名为X的git仓库中做了一些工作,它有一个子模块Y。我对X中的文件进行了一些更改,希望保留这些更改,但我对子模块Y进行的更改现在想要撤销。因此,我想要撤销我对子模块所做的所有本地更改。
我尝试了git checkout -- ../dep/libY
,但没有任何变化。
Git状态显示:
modified: ../dep/libY (modified content)
子模块就是一个Git仓库。因此,您可以cd
进入子模块,并使用git reset --hard
来丢弃在另一个Git仓库的工作树和索引中完成的工作。(一定要先在该工作树中运行git status
和其他Git命令(如果需要)以确保您要丢弃的任何文件都是不需要的。)
git checkout HEAD -- path/to/submodule
。
git checkout HEAD -- ../dep/libY
git checkout dep/libY
或者
进入文件夹(你想要撤销所有更改的文件夹)并执行以下操作:
git checkout ./