git - 在提交中恢复对子模块的更改
问题描述
问题
鉴于已推送的提交sha1
包含对子模块的更改以及对其他文件的一些其他更改,我如何仅恢复对子模块的更改,但保留对其他文件的更改?(即,恢复整个提交不是一个选项。)
到目前为止的尝试
我根据相关问题的答案尝试了这个:
git show some_commit_sha1 -- path/to/submodule | git apply -R
但显然它不起作用。
如果确实如此,我会感到惊讶,因为差异就是这样:
git show some_commit_sha1 -- path/to/submodule
[...]
-Subproject commit abcdef12345....
+Subproject commit 98765432109....
(我想git apply -R
对此无能为力。)
相关但不重复的问题:
在提交中恢复对文件的更改 这正是我想要做的,但不是使用文件,而是使用子模块。
如何恢复对 git 子模块的更改?这是为了恢复“本地”(尚未提交的)更改
Git submodule revert commit Title 似乎正是我所需要的,但随后问题又问到了其他问题(如果我理解正确,这是关于在各个分支上更改子模块的内容)
解决方案
子模块提交还原
首先转到命令提示符然后转到要还原的子模块。
1) cd ../子模块名称
提交 ID 将在 GIT 提交中可用,但在 PR 中有所不同。
2) git checkout 提交 ID
检查 git 状态
3) 混帐状态
查看命令提示符子模块上的输出看起来像红色,只需检查。
4)修改:../子模块名称
然后将更改添加到 GIT 以进行推送。
5)混帐添加../。
再次检查状态
6) 混帐状态
查看命令提示符子模块上的输出看起来像绿色,只需检查。
7)修改:../子模块名称
然后将更改推送到 GIT
8) git推送
注意:如果推送未完成表单命令提示符,那么您可以Android Studio
在 android 或Source Tree
其他 GIT 编辑器的情况下推送。
Android Studio
如果您只能还原错误子模块提交的文件的特定部分,则对于 android 是更好的选择,为了取笑您只能选择那些只会错误合并的文件。
推荐阅读
- linux - 如何向自签名 CA 证书文件添加注释?
- python - pandas 有没有办法将 read_sql() 与 sql-statement 一起使用,它需要多个变量?
- android - 使用 Kotlin 进行 FirebaseAuthentication 过程中的对话框进度条
- mysql - 是否可以在 MySQL Workbench 查询编辑器中获取 vim 键绑定?
- keyboard-shortcuts - 如何更改 CLion 中“快速修复”选项的键盘快捷键?
- linux - Buildroot 工具 - 从 .RPM 添加用户库
- node.js - collection.Aggregate 不适用于具有另一个对象数组的对象数组
- c++ - 用 getline() 填充结构字段
- amazon-web-services - prometheus-9.5.4 获取 helm status 失败
- firebase - Vue Js & Firebase 关系查询问题