最近我的一个队友已经用git强制推送(stash上的远程仓库),我们丢失了大部分旧的提交历史,我很惊讶地知道我们无法确定是谁做的。
我用Google搜索了,但无法得到任何满意的答案。这里有人可以帮忙吗?
答案 0 :(得分:1)
由于某些原因你无法确定:
如果您不使用ssh密钥,则可以随时“伪造”姓名和电子邮件。
git commit -c user.name <faked name> -c user.email <fake email> ...
如果用户有结帐和旧提交以及强制推送,则提交的将是最后一次推送的人(再次假设使用http / https)
使用`git reflog``
检查开发人员的本地存储库是做什么的-
您可以尝试按照此处所述读取存储日志 https://confluence.atlassian.com/stashkb/how-to-read-the-stash-log-formats-317951177.html
再次 - 如果您使用ssh密钥,这将有所帮助。否则它没用。
git reflog
git reflog
将显示更新HEAD
的任何更改,在您的情况下指出谁更改并提交了错误的提交。
How to prevent it for next time?
强> 为stash安装此插件
保护特定分支免受强行推送
https://marketplace.atlassian.com/plugins/com.carolynvs.force-field/server/overview