有一个子模块发生了变化,我不想暂存/提交.很遗憾,我无法恢复它.我该怎么办



我从一个开源项目中获取/提取依赖项。我这样做是为了更新情况。运行这个程序是必要的。

当我这样做的时候,主存储库构建文件中发生了一些不需要的更改。Git显示了发生的变化:

Changes are not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified:   _build/submodules/cl-webkit (new commits)

当我做git diff时,我可以看到它是一个简单的变化:

$ git diff _build/submodules/cl-webkit/
diff --git a/_build/submodules/cl-webkit b/_build/submodules/cl-webkit
index cfc4f01e..29aeb74d 160000
--- a/_build/submodules/cl-webkit
+++ b/_build/submodules/cl-webkit
@@ -1 +1 @@
-Subproject commit cfc4f01ee806169d824750b4014653a93af9353d
+Subproject commit 29aeb74d854bd2ac52959ef3d793389d238636c5

更改保持为未声明和未提交状态。如果我试图用恢复它们

$ git restore _build/submodules/cl-webkit/

我没有收到错误消息。但是,它确实不起作用。按下git status后,git显示内容保持不变:

Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified:   _build/submodules/cl-webkit (new commits)

我该怎么办?

这很烦人。如果我在开源项目中执行Pull Request,我总是需要证明我是否意外添加(暂存(并提交了此更改。这种情况至少发生了两次,维护人员要求我恢复提交并在没有提交的情况下推送PR

更新子模块的正确命令是git submodule update

git submodule update _build/submodules/cl-webkit

(我也很惊讶git restoregit checkout都不起作用(


由于子模块也是git repo,您可以通过在该子模块中运行常规git命令来更新它:

# if you can afford to delete all changes, you can use 'reset --hard'
cd _build/submodules/cl-webkit
git reset --hard cfc4f01ee806169d824750b4014653a93af9353d

相关内容

  • 没有找到相关文章

最新更新