【Git】Git的提交记录消失了!?应对方法【Git】Git的提交记录不见了!?处理方法

经过

好久不见啦。距离第一次投稿已经有大约两个月了?

在我还在现职的同时,也在进行着跳槽活动,但是不知不觉间,我的 Git 仓库的提交记录全都消失了。

尽管我觉得这样不太好,但由于工作的兼顾,一直没有时间处理,终于能够应对了。所以我想把这当作备忘录发表出来。

可能是在部署过程中处理错误并更改了设置…

环境

在AWS的Cloud9上,以Ruby on Rails作为主要技术框架,开发了一个网络购物电子商务网站。同时使用GitHub作为版本控制工具。

简述 / 摘要

    1. 确认GitHub远程仓库的Pushlog

 

    1. 在更改用户名之前,将远程仓库和本地仓库的状态同步

 

    1. 将默认用户更改为Git用户名

 

    1. 在进行历史修改之前,先进行一次缓冲(以避免风险)

 

    1. 开始历史修改!将用户名应用于所有历史并进行强制推送

 

    最后(反省)

做过的事情 (zuò guò de shì

确认Git远程仓库的推送日志

由於時間相對寬裕,我直接從GitHub上再次確認了情況。

然后发现最后一次进行了Read.me的编辑,并且这本身是通过GitHub直接进行的更改,因此草的反映也是通过用户名进行的。

查看推送的日志,发现不是以账号名的身份进行操作,而是以默认用户的身份。

我花了很长时间思考过去的自己在干什么,但却没有取得任何进展,所以我立即进行了搜索。

在更改用户名之前,需要将远程仓库和本地仓库的状态同步。

在进行搜索时,如果你在GitHub上编辑的README.md文件被本地使用git push -f命令覆盖了,如何恢复到原始状态。

看到这篇文章,实际上我自己也差不多会走到这一步。(虽然在README文件中没有进行太大的更改,但是仍然需要花费一些功夫)首先执行 $git pull origin 分支名,将远程和本地的状态同步起来。

将默认用户更改为Git用户名。

然后,终于要更改用户名了。
按照这篇文章“修改Git提交用户”的方法,首先确认一下,这次的情况是默认用户,
user.name EC2 DefaultUser/user.email (输出为空)。
然后通过GitHub的设置页面等,确认信息并进行修正。

再次输入并确认后,输出并确认已更改的帐户名和电子邮件地址。

在改变历史之前,需要一个垫脚石?(风险规避)。

由于用户的姓名和电子邮件地址已被更改,因此在修改历史之前,首先尝试使用常规的git init开始,并仅推送最新的修改。(因为突然进行所有历史修改让我有些害怕…)
然后发现只有最新的修改了用户名!(真好)

$ git log -3
commit 30670c11dd43b697d0153d3ab54af9d39fd8037e (HEAD -> main, origin/main)
Author: *************************************
Date:   Wed May 3 09:21:26 2023 +0000

    [Add]デフォルトユーザー名になって草が生えていなかったため修正

commit a11f7cd593b805f3cbcfb850a518c9420f899c47
Author: ************************************
Date:   Sun Apr 2 23:31:28 2023 +0900

    Update README.md

commit 9948b7440b565dde15b4858704b7d2d6d7a72e69 (develop)
Author: EC2 Default User <ec2-user@ip-**************************>
Date:   Thu Mar 23 06:32:35 2023 +0000

    [Add]イメージサイズを200,150から200,300に変更

来吧,改变过去!将用户名称强制推送到所有历史记录中。

按照【Git】历史改变中的【批量更改过去提交的Author和Committer】,设置用户名和电子邮件地址。

然而,由于最初在更改{{USERNAME}}时没有删除花括号而导致出现不同的账户名。

無事草生えた

太好了太好了……?

最后(反思)

如果这种情况在实际工作中的团队里发生,可能会更令人恐惧……

我个人认为,历史改变这个词听起来有些像反派,但却很酷。然而,在实际工作中,我希望能注意不去引发历史改变。

广告
将在 10 秒后关闭
bannerAds