【Git】Git的提交记录消失了!?应对方法【Git】Git的提交记录不见了!?处理方法
经过
好久不见啦。距离第一次投稿已经有大约两个月了?
在我还在现职的同时,也在进行着跳槽活动,但是不知不觉间,我的 Git 仓库的提交记录全都消失了。
尽管我觉得这样不太好,但由于工作的兼顾,一直没有时间处理,终于能够应对了。所以我想把这当作备忘录发表出来。
可能是在部署过程中处理错误并更改了设置…
环境
在AWS的Cloud9上,以Ruby on Rails作为主要技术框架,开发了一个网络购物电子商务网站。同时使用GitHub作为版本控制工具。
简述 / 摘要
-
- 确认GitHub远程仓库的Pushlog
-
- 在更改用户名之前,将远程仓库和本地仓库的状态同步
-
- 将默认用户更改为Git用户名
-
- 在进行历史修改之前,先进行一次缓冲(以避免风险)
-
- 开始历史修改!将用户名应用于所有历史并进行强制推送
- 最后(反省)
做过的事情 (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}}时没有删除花括号而导致出现不同的账户名。
太好了太好了……?
最后(反思)
如果这种情况在实际工作中的团队里发生,可能会更令人恐惧……
我个人认为,历史改变这个词听起来有些像反派,但却很酷。然而,在实际工作中,我希望能注意不去引发历史改变。