Git删除历史记录,并提交当前状态至新纪录,以实现垃圾清理

该博客介绍了如何使用Git命令行删除所有历史提交记录,创建一个新分支并将其重命名为主分支。步骤包括使用`git checkout --orphan`创建新分支,`git add -A`添加所有文件,`git commit`提交,然后删除旧的主分支,最后将新分支推送到远程仓库。这个过程用于将项目状态更新为最新,同时清空历史记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码

git checkout --orphan latest_branch
git add -A
git commit -am "init commit"
git branch -D master
git branch -m master
git push -f origin master

注释

git checkout --orphan latest_branch
# 创建新分支 "latest_branch" 并转到该分支
# git checkout 命令为在当前分支上创建新分支(并转到该分支)
# git checkout --orphan 命令为从空白处创建新分支(并转到该分支)

git add -A
# 添加所有文件(当前最新状态)到暂存区

git commit -am "commit message"
# 将暂存区提交到新纪录(latest_branch分支)
# "commit message"为新纪录的名称

git branch -D master
# 删除主分支

git branch -m master
# 将latest_branch(当前)分支重命名为master(主分支)

git push -f origin master
# 同步本地状态到服务器

# 此时,完成的效果为:
#   将master分支所有记录删除,并新建一个"commit message"记录,记录中内容为当前项目最新状态
#   此时远程服务器内所有垃圾都被清空
#   如果使用了github desktop等软件,本地垃圾可能未被清空,可删除项目并重新clone

参考链接

### 如何从 Gitee 删除已上传的文件 在 Gitee 平台上删除已上传的文件是一项常见操作,可以通过以下方式完成: #### 方法一:通过 Web 页面手动删除 用户可以直接登录 Gitee 的网页端,在目标仓库中找到需要删除的文件执行删除操作。具体流程如下: - 登录至 Gitee 账号后进入对应的代码仓库页面。 - 浏览到包含待删除文件的具体路径。 - 单击该文件右侧的操作按钮(通常是一个带有省略号或其他图标的菜单),从中选择“删除”选项[^2]。 一旦确认删除动作,则此更改会被记录为一次新的提交(commit),随后可以将其推送到远程服务器以同步更新状态。 #### 方法二:利用 Git 命令行工具移除文件 对于熟悉命令行界面(Command Line Interface, CLI) 的开发者来说,也可以借助本地安装好的Git软件来达成同样目的: 1. **克隆仓库** (如果尚未获取最新版本的话): ```bash git clone https://gitee.com/username/repository_name.git cd repository_name ``` 2. **执行删除命令**: 对应于要清除的目标文件名运行下面这条语句即可: ```bash git rm path/to/file_to_be_deleted.ext ``` 3. **提交变更**: 将上述变动作为一条新纪录保存下来. ```bash git commit -m "Remove unnecessary file" ``` 4. **推送改动至上游分支**: 让远端存储库知晓所做的调整。 ```bash git push origin main # 或者 master 取决于默认设置 ``` 以上步骤会彻底消除指定文档及其历史踪迹[^3]^。 另外值得注意的是,当涉及到整个子目录而非单个独立项时,可采用递归形式(`rm -r`)来进行批量处理;而若是希望保留实际资料仅注销链接关系则需单独考虑其他策略^。 综上所述,无论是偏好图形化交互还是倾向于脚本自动化的方式都可以顺利实现Gitee平台上既存资源的有效清理工作。 ```python import os from pathlib import Path def delete_file_in_gitee_repo(repo_path: str, target_file: str): """ A function to simulate deleting a specific file within the cloned Gitee repo using Python. Args: repo_path (str): The local directory where your Gitee repository is located. target_file (str): Relative or absolute filepath of the item you wish to erase from this project space. Returns: bool: True upon successful removal; False otherwise indicating failure during process execution phase. """ try: full_target = Path(os.path.join(repo_path, target_file)) if not full_target.exists(): raise FileNotFoundError(f"The specified entity does not exist at {full_target}.") elif full_target.is_dir(): print("Detected as Directory! Proceeding with caution...") command = f'git rm -rf "{target_file}"' else: command = f'git rm "{target_file}"' result = os.system(command) return result == 0 except Exception as e: print(e) return False if __name__ == "__main__": success = delete_file_in_gitee_repo("/path/to/local/repo", "example.txt") if success: print("File successfully marked for deletion.") else: print("An error occurred while attempting to remove the selected entry.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值