将提交中的更改返回到子模块中

问题描述 投票:1回答:1

问题

鉴于已经推送的提交sha1包含对子模块的更改,以及对其他文件的其他更改,我如何仅将更改恢复到子模块,而又将更改保留在其他文件中? (即,不是还原整个提交的选项。)

到目前为止尝试

我根据相关问题的answer尝试过此操作:

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不能做很多。)

相关但不可重复的问题:

Revert changes to a file in a commit这正是我要执行的操作,但是不是使用文件而是子模块。

How do I revert my changes to a git submodule?这是用于还原“本地”(尚未提交)的更改

[Git submodule revert commit Title似乎正是我所需要的,但随后的问题询问其他问题(如果我理解正确,那是关于更改各个分支上子模块的内容)]

git version-control git-submodules revert
1个回答
0
投票

子模块提交还原

首先转到命令提示符,然后转到您想要的子模块还原。

[1)cd ../子模块名称

commit id将在PR中的GIT提交中可用。

2)git checkout提交ID

检查git状态

3)git状态

请参阅命令提示符子模块上的输出,看起来像红色,只需检查即可。

4)修改为:../子模块名称

然后将更改添加到GIT以进行推送。

5)git add ../。

再次检查状态

6)git状态

请参见命令提示符子模块上的输出看起来像绿色,只需检查即可。

已修改:../子模块名称

然后将推送更改为GIT

[7)git push

注意:如果未完成推送形式命令提示符,则在Android或Android Studio或其他一些GIT编辑器的情况下,可以通过Source Tree进行推送。

Android Studio是android的更好选择,如果您只能还原错误子模块commit的文件的特定部分,那么您只能选择那些应该错误合并的文件。

© www.soinside.com 2019 - 2024. All rights reserved.