[英]Revert changes to a submodule in a commit
题
鉴于已推送的提交sha1
包含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 将在 PR 中不同的 GIT 提交中可用。
2) git checkout 提交 ID
检查 git 状态
3) 状态
查看命令提示符子模块上的输出看起来像红色,只需检查。
4)修改:../子模块名称
然后将更改添加到 GIT 以进行推送。
5) git 添加 ../.
再次检查状态
6) 状态
查看命令提示符子模块上的输出看起来像绿色,只需检查。
7)修改:../子模块名称
然后将更改推送到 GIT
8) git 推送
注意:如果在命令提示符下推送未完成,那么您可以在 android 或Source Tree
或其他一些 GIT 编辑器的情况下通过Android Studio
推送。
如果您只能恢复错误子模块提交的文件的特定部分, Android Studio
是更好的选择,为了取笑,您只能选择那些只会错误合并的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.