You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何推送至GitHub新仓库时会包含所有历史提交?

问题解决指南

问题1:新仓库推送后包含其他仓库的历史提交

原因

你大概率是在已有Git仓库的文件夹里直接创建新项目,或是复用了带.git文件夹的旧目录作为新项目的本地仓库——Git的所有历史提交都存在根目录的.git文件夹中,只要这个文件夹没删除,新提交就会和旧历史绑定,推送到新远程仓库时自然会带上所有旧提交记录。

解决步骤

  1. 为每个新项目单独创建空文件夹,不要在已有Git仓库的目录里嵌套新项目
  2. 进入新文件夹,执行git init初始化全新的Git仓库
  3. 将新项目文件放入该文件夹,依次执行:
    git add .
    git commit -m "初始化项目"
    
  4. 关联GitHub上的新仓库(复制仓库的HTTPS/SSH地址):
    git remote add origin [你的新仓库地址]
    
  5. 最后推送代码:
    git push -u origin main
    

若已在旧仓库里建了新项目,补救方法:

  • 把新项目的所有文件复制到一个全新的空文件夹
  • 按上面的步骤初始化新仓库、关联远程、推送
  • 删除旧仓库里的新项目文件夹,避免后续混淆

问题2:进入新文件夹执行git add无内容可暂存,根目录git add .可以

原因

  1. Git不追踪空文件夹:如果新文件夹里没有任何文件,执行git add不会有内容被暂存
  2. 若新文件夹里有文件,但进入文件夹执行git add .没反应,大概率是操作时文件夹里确实为空,或是你误将文件放到了其他位置

正确操作

  • 添加新文件夹内容的两种有效方式:
    1. 进入新文件夹,执行git add .(前提是文件夹内有文件)
    2. 在仓库根目录执行git add ./新文件夹名称/,精准添加该文件夹下的所有内容
  • 若需Git识别空文件夹,可在空文件夹里创建一个名为.gitkeep的空文件(这是Git社区通用约定,非强制命令)

内容的提问来源于stack exchange,提问作者urchin55

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:15:42