个人技术分享

1. 查看日志

git log

2. 修改最近一次提交的时间

git commit --amend --date="2024-05-01T09:30:00+0800" -am ":memo: 更新 TODO.md"

3. 修改最近一次提交的时间并使用指定提交记录的信息

git commit --amend --date="2024-05-01T09:30:00+0800" -C e5bf3de080cb9936bd5a680c82e15dd9e9e2e8f8

4. 修改历史某条提交的时间(Force Push)

当运行 git filter-branch 命令时,Git 会创建一个名为 refs/original/ 的备份引用,以保存过滤前的提交历史。这个备份可以在过滤后的提交历史与过滤前进行比较或恢复时使用。备份的目的是为了保护原始的提交历史,以防止意外的数据丢失。你可以在完成操作后查看这个备份引用,如果不再需要,也可以通过删除它来释放空间。

git update-ref -d refs/original/refs/heads/master

这个命令将删除 master 分支的原始备份。你可以将 master 替换为你想要删除备份的分支名称。确保在执行此命令之前,你已经完成了对过滤后的提交历史的确认,因为删除备份后将无法恢复原始的提交历史。

git filter-branch --env-filter \
    'if [ $GIT_COMMIT = e5bf3de080cb9936bd5a680c82e15dd9e9e2e8f8 ]
     then
         export GIT_AUTHOR_DATE="2024-05-01T09:30:00+0800"
         export GIT_COMMITTER_DATE="2024-05-01T09:30:00+0800"
     fi'