Git one liner恢复不需要的子模块更改
所以,假设我搞砸了,运行了Git one liner恢复不需要的子模块更改,git,Git,所以,假设我搞砸了,运行了git commit-a,意外地提交了一个我不想要的子模块更改(可能是因为我运行了git pull,然后忘记运行git submodule update)。我想把这零钱扔掉。有没有一个班轮我可以用来做这个 我今天的做法是: 我运行gitshow来找出旧散列是什么 我将cd放入子模块,然后运行git reset--hard OLD_HASH 返回父目录并git提交--amend-a 这是太多的步骤。真的没有更短的吗 注意:这个问题与用户意外地对子模块中的文件进行了实际更改
git commit-a
,意外地提交了一个我不想要的子模块更改(可能是因为我运行了git pull
,然后忘记运行git submodule update
)。我想把这零钱扔掉。有没有一个班轮我可以用来做这个
我今天的做法是:
gitshow
来找出旧散列是什么cd
放入子模块,然后运行git reset--hard OLD_HASH
git提交--amend-a
git rev parse
、精心构造的git更新索引
、以及git commit--amend
)。您可以将该脚本制作成Git命令(将其命名为Git-foo
并将其放入您的路径中,然后Git-foo
将运行您的Git-foo
脚本),或者使用Git-config
和[alias]
部分将其制作成Git别名
您可能希望使用子模块来设置您的设置,以便在将来不太可能发生这种情况。例如,递归
到真
。(请注意,除非您还设置了push.recurseSubmodules
,否则这会影响git push;详细信息请参阅中的所有子模块设置)