如何仅保留一个提交在master分支上,其余文件都已被清理?

摘要:Q 我的开发工作都在 master 分支上做的,master 分支有很多的开发的时候产生的临时文件。我想清空 master 分支的历史记录。并且只保留 README.md 和 main.py A 你可以通过以下步骤清空 master 分支的
Q 我的开发工作都在 master 分支上做的,master 分支有很多的开发的时候产生的临时文件。我想清空 master 分支的历史记录。并且只保留 README.md 和 main.py A 你可以通过以下步骤清空 master 分支的历史记录,只保留 README.md 和 main.py 文件: 步骤 1: 创建一个干净的分支 首先,确保你在 master 分支,并提交所有未保存的工作。 git checkout master git add . git commit -m "Save all work before cleaning history" 步骤 2: 创建一个新的空分支 接下来,创建一个新的空分支来开始清理历史。 git checkout --orphan clean-branch --orphan 创建一个没有历史记录的分支。 步骤 3: 移除所有文件并保留需要的文件 现在删除所有文件,但保留 README.md 和 main.py。 git rm -rf . git checkout master -- README.md main.py 这会删除项目中的所有文件,然后从 master 分支中恢复 README.md 和 main.py。 步骤 4: 提交新的分支 然后提交这些更改。 git add README.md main.py git commit -m "Clean history, only keep README.md and main.py" 步骤 5: 强制更新 master 分支 接下来,将这个新的干净分支强制推送到 master 分支,替换它的历史记录。 git checkout master git reset --hard clean-branch git branch -D clean-branch 步骤 6: 强制推送到远程仓库 如果你需要将清理后的 master 分支推送到远程仓库,你需要使用 --force 参数。 git push origin master --force 这样,历史记录将被清空,只保留 README.md 和 main.py 文件。 注意 强制推送会影响其他开发人员的本地仓库,他们可能需要重新克隆项目。 请谨慎使用,因为一旦推送到远程仓库,历史记录将无法恢复。