2014-09-11 81 views
0

我的项目中有几个子模块,我无意中对模块做了一些更改。 虽然我没有明确地检查更改,但我发现子项目在提交存储库时提交。 enter image description here
(使用存储)如何在git中恢复自动子项目提交

当我在本地回购库上执行git status时。它显示了(modified content)针对该子项目。所以我搬到了子项目的子目录,并放弃了更改。当我现在执行git状态时,(修改后的内容)不显示。但是,由于没有提交,我无法检入或恢复图中显示的无意提交。 git revert <green commit hash in pic>错误,因为在我的本地回购中没有这样的提交。

请帮我理解我如何在我的子项目上恢复提交。即使进入子项目的子目录,这些提交也不会显示。

+0

尝试检查[reflog](http://git-scm.com/docs/git-reflog)。您可以使用散列或提交消息来grep输出,以帮助您找到要查找的提交。 – 2014-09-11 02:19:11

回答

0

不知道这是否是最好的方法,但我发现如何去做。

  1. 我放弃我所有的我的子项目变化由git checkout -- <file>
  2. 当我做一个git分支的子项目,它显示了它的分离从头部 。我做了一个git pull origin master
  3. 现在,当我进入根项目并执行git状态时,除子项目外,它还显示 (new commits)。添加子项目 使用git add <subproject-name>git commit
  4. git push对远程存储库的更改。