如何在不同步本地/远程仓库时向GitHub推送并保留所有文件?
问题解决方法
核心问题是你把本地删除文件的操作也提交并推送到了GitHub,导致仓库的最新状态会移除之前的文件。要让GitHub保留所有历史推送的文件,只需调整提交逻辑:
- 每次新文件生成后,执行以下Git命令提交并推送:
# 暂存新文件 git add work/[新文件名] # 提交新增文件的变更 git commit -m "Add [新文件名]" # 推送到GitHub git push origin main - 本地删除文件后,不要执行
git add和git commit来记录删除操作,直接删除即可。这样GitHub仓库的提交历史会保留所有新增文件的记录,且最新状态下所有推送过的文件都会存在。
如果之前已经错误提交了删除操作,可以通过回滚提交来恢复文件:
# 查看提交历史,找到删除文件的那次提交的哈希值 git log # 回滚到删除操作之前的提交 git reset --hard [删除提交的上一个提交哈希] # 强制推送到GitHub(注意:会覆盖远程仓库的最新状态,确保没有其他人在同时操作) git push origin main --force
内容的提问来源于stack exchange,提问作者nora
相关产品推荐
相关产品推荐

