备注写错了、写重了,想合并或者删除,上传到github时不小心上传了两次initial的备注?
方案一 : 仅修改最新的 Commit 备注
如果希望保留两次提交的历史,只是想把最新的e8a45a9备注改成更准确的描述(例如feat: add index.html and gitignore):
修改本地最新一次提交的备注git commit --amend -m "feat: add index.html and gitignore"
强制推送到 GitHubgit push --force-with-lease origin main
方案二:合并两次提交为一个(整理干净历史)
撤销最近一次提交,但保留文件修改git reset --soft HEAD~1
将修改重新追加到上一次提交中(同时修改备注)git commit --amend -m "Initial commit: add project files, README, and gitignore"
以下是方案二的操作,旨在解决项目在github上因为误操作上传了两个Initial commit的情况
PS D:\VScodeFile\web> git reset --soft HEAD~1 PS D:\VScodeFile\web> git commit --amend -m "Initial commit: add project files, README, and gitignore" [main edaeb74] Initial commit: add project files, README, and gitignore Author: xxxxxxxx <xxxxxxxxxx@qq.com> 3 files changed, 5618 insertions(+) create mode 100644 .gitignore create mode 100644 gemini-code-1787142561678.html create mode 100644 index.html PS D:\VScodeFile\web> git push --force-with-lease origin main Enumerating objects: 5, done. Counting objects: 100% (5/5), done. ... To https://github.com/Alxxxx/Alxxxx.git + e8a45a9...edaeb74 main -> main (forced update)合并后:
回退版本
git log --oneline查看你的所有提交记录(vscode源代码管理可以直接看)
输出类似
a3b4c5d (HEAD -> main)修改了首页标题和CSS样式 7e8f9a0 优化了图片展示 1f2e3d4 第一次提交:初始化网站HTML页面 <-- 假设这是你的第一个版本回退方式
方案 1:回去看看不破坏当前的最新代码(安全)
如果只是想临时看看第一个版本长什么样,检查完还想回到现在:
将代码库临时切换到第一个版本的 Hash 值 git checkout 第一个版本的 Hash 值 回到最新状态: git checkout main方案 2 :彻底把本地代码回滚到最初形态
彻底重置本地代码到指定版本(注意:这会丢失第一个版本之后的所有未保存改动) git reset --hard 1f2e3d4●效果: 你的本地工作区彻底变成了第一次提交时的状态。
●将回滚同步到 GitHub: 此时 GitHub 上已经有了更新的版本,直接git push会被拒绝。需要执行强制覆盖推送:git push -f origin main
(注意:强制推送会把 GitHub 上的提交历史也一并擦除,让 GitHub 也回到第一个版本。)
方案 3:生成一个新的提交来撤销修改
回到第一个版本的代码状态,但又想保留中间做过的所有修改历史
# 撤销从第一个版本之后的所有修改 git revert --no-commit 1f2e3d4..HEAD # 提交这个恢复操作 git commit -m "回滚代码至初始版本" # 正常推送到 GitHub git push origin main● 效果: 代码内容变回第一个版本,Git 历史记录里记录了某时刻执行了一次回滚.