繁体   English   中英

在提交中恢复对子模块的更改

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM