【问题标题】:Revert changes to a submodule in a commit在提交中恢复对子模块的更改
【发布时间】:2019-07-11 15:21:27
【问题描述】:

问题

鉴于已推送的提交 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】:

    子模块提交恢复

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

    1) cd ../子模块名称

    提交 id 将在 GIT 提交中可用,但 PR 不同。

    2) git checkout 提交 ID

    检查 git 状态

    3) 混帐状态

    查看命令提示符子模块的输出看起来像红色,只需检查。

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

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

    5) git add ../.

    再次查看状态

    6) 混帐状态

    查看命令提示符子模块的输出看起来像绿色,只需检查。

    7) 修改:../子模块名称

    然后将更改推送到 GIT

    8) git 推送

    注意:如果推送未完成表单命令提示符,那么您可以通过Android Studio(如果是 android 或 Source Tree 或其他一些 GIT 编辑器)推送。

    Android Studio 在 android 的情况下是更好的选择,如果你只能恢复错误子模块提交的文件的特定部分,为了取笑你只能选择那些应该只错误合并的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 2011-03-15
      • 1970-01-01
      • 2019-07-18
      相关资源
      最近更新 更多