git 删除误上传的.idea文件、如何清除git仓库的所有提交记录,成为一个新的干净仓库、清除git仓库中某个文件的提交记录

本文详细介绍了如何从Git仓库中删除误上传的文件,如.idea文件,并清除所有提交记录,使仓库变得干净。具体步骤包括使用gitignore、git filter-branch等命令进行操作,并给出了在遇到问题时的解决建议。此外,还提供了恢复误删文件的方法。

git 删除误上传的.idea文件

提交项目的时候忘记添加.gitignore文件,误上传了文件夹(如.idea)如何解决?

  1. pycharm 安装 .ignore插件

  2. 项目跟目录下创建 .gitignore 文件
    以.idea文件夹举例,如下排除 .idea/

    # Project exclude paths
    /venv/
    .idea/
    
  3. 打开项目终端执行命令
    删除github上的误上传文件.idea

    git rm -rf --cached .idea    
    
  4. 提交.gitignore文件

    git add .gitignore
    

    把 .idea 目录加进去~

  5. 上传

    git commit -m '忽略idea'
    git push -u origin main
    

如何清除git仓库的所有提交记录,成为一个新的干净仓库

需求:
提交代码的时候在Log中上传了一些比较敏感的信息,这些信息都可以在Github上面搜索到,想把这些Log信息清除掉,使其变成一个没有提交记录的“新仓库”。

解决方案:
使用 git –orphan 清理git历史

操作步骤:
1) 创建新分支

git checkout --orphan newBranch
  1. 添加所有文件(除了.gitignore中声明排除的)
git add -A
  1. 提交跟踪过的文件(Commit the changes)
 git commit -am "init commit"

4)删除master分支

git branch -D master
  1. 重命名当前分支为master
git branch -m master
  1. 强制提交到远程master分支
git push -f origin master

通过以上几步就可以简单地把一个Git仓库的历史提交记录清除掉了

注意这里强推 报错: Failed to connect to github.com port 443: Timed out
使用git bash窗口试试,亲测可以!

清除git仓库中某个文件的提交记录

以 xxx.sh 来举例说明

第一步:在本地将该文件手动备份出一份。

切记,先执行这一步~

第二步:在本地打开git终端,删除该文件的提交记录

git filter-branch -f  --index-filter 'git rm -rf --cached --ignore-unmatch src/script/xxx.sh' HEAD

注意:这里的 src/script/xxx.sh 就是要删除提交记录的文件的路径。

第三步:将本地更改推送到远端

git push origin --force --all

此时,连同文件以及提交记录已全部删除掉。

第四步:将上面备份的文件再添加到对应目录,并重新提交到仓库即可

亲测可用~

### 配置 IntelliJ IDEAGit 提交时忽略 `.idea` 文件的方法 #### 方法一:通过 IntelliJ IDEA 设置界面配置忽略文件 可以在 IntelliJ IDEA 的设置界面对特定类型的文件进行全局忽略。具体步骤如下: 1. 打开 **Settings/Preferences** 界面: - 在 Windows 环境下,依次点击 `File -> Settings -> Editor -> File Types`。 - 在 macOS 环境下,依次点击 `Preferences... -> Editor -> File Types`。 2. 定位到 **Ignore files and folders** 输入框,在其中输入需要忽略的内容,例如: ``` *.iml;.idea;target; ``` 3. 点击确认按钮保存更改。完成上述设置后,`.idea` 文件夹以及指定的其他文件将在后续提交代码时被自动忽略[^1]。 --- #### 方法二:通过 `.gitignore` 文件实现忽略 为了更灵活地控制哪些文件或目录不参与版本管理,推荐使用 `.gitignore` 文件来定义忽略规则。 1. 创建或编辑项目根目录下的 `.gitignore` 文件(如果没有该文件,则新建一个)。 2. 添加以下内容以忽略 `.idea` 文件夹及其内部所有文件: ```plaintext .idea/* ``` 3. 如果之前已经将 `.idea` 文件夹纳入过版本管理,可能需要清除缓存并重新应用忽略规则。执行以下命令: ```bash git rm -r --cached .idea/ ``` 此命令的作用是从 Git 缓存中移除 `.idea` 文件夹,而不会影响本地实际文件的存在状态[^2]。 4. 清理完成后,再次运行 `git status` 命令验证是否成功忽略了目标文件夹。 --- #### 方法三:强制清理已跟踪的 `.idea` 文件夹 如果发现即使设置了 `.gitignore` 文件仍然无法阻止 `.idea` 被提交,可能是由于它已经被 Git 进行了追踪。此时可以通过以下方式彻底解决: 1. 删除当前项目的缓存记录: ```bash git rm -r --cached -f . ``` 2. 将更新后的 `.gitignore` 文件重新添加至暂存区,并提交修改: ```bash git add .gitignore git commit -m "Update .gitignore to ignore .idea folder" ``` 以上操作能够确保未来所有的提交都不会再包含 `.idea` 文件夹内的数据[^3]。 --- ### 总结 三种方法各有优劣,建议优先考虑利用 `.gitignore` 文件的方式来进行细粒度的排除设定;而对于临时或者个人偏好类别的调整则适合采用 IDE 自身提供的选项面板功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值