我不喜欢这些事情,我不知道编码,但我在 UNREAL ENGINE 5.1 上工作,我的团队正在使用连接到 git 存储库的源代码控制(我们只是遵循了一些教程),我们有超过 100 次提交,我们正在运行空间不足,我们买不起更多的数据包,所以有什么方法可以删除旧的提交吗?
我尝试搜索,找到了一些文章,但我无法理解 删除旧的 git 提交 https://forums.unrealengine.com/t/deleted-files-wont-commit-deleted-status-to-git-repository/316115
是的,您可以,但您可能会扰乱团队的工作。首先确保您有存储库的备份。
您可以这样做:
1。确定您需要删除的提交:
可以使用 git log 命令查看提交历史记录。如果您要删除早于特定日期的提交,可以使用 --since 选项:
git log --until="2024-03-03"
根据需要调整日期。格式为
YYYY-MM-DD
2。创建一个没有提交的新分支:
一旦确定了要删除的提交,您就可以创建一个新分支,该分支从要删除的提交之前的提交开始。例如,如果您想删除从
commit_id
开始的提交,您可以这样做:
git checkout -b new_branch commit_id^
此命令创建一个名为
new_branch
的新分支,该分支从 commit_id
之前的提交开始
3.强制推送新分支
创建新分支后,需要强制push到远程仓库。这将使用新分支的历史记录覆盖远程存储库上的历史记录,因此在执行此步骤之前请与您的团队进行沟通,以避免中断他们的工作。:
git push origin new_branch:main --force
此命令强制将
new_branch
推送到远程存储库上的主分支。如果不同,请将 main
替换为主分支的名称
5。重新调整本地分支
您的团队成员将需要根据新的历史记录重新调整当地分支机构的基础
git fetch origin
git rebase origin/main
如果不同,请将
main
替换为您的主分支的名称。
6。清理干净
您的团队成功重新建立分支基础后,您可以从远程存储库中删除旧分支:
git push origin --delete old_branch
将 old_branch 替换为您要删除的分支的名称。
警告!
我建议的最佳解决方案:
由于您使用虚幻引擎,您肯定有很多非常大的文件。
Git Large File Storage (Git LFS)
可以成为管理 Git 存储库中大文件的解决方案,而不会增加存储库大小。 Git LFS
使用 Git 内的文本指针替换音频样本、视频、数据集和图形等大型文件,同时将文件内容存储在 GitHub.com 或 GitHub Enterprise 等远程服务器上。
以下是如何为您的项目设置和使用 Git LFS:
1。安装 Git LFS
您可以从官方网站这里下载它或使用包管理器安装它。例如,在 macOS 上,您可以使用 Homebrew:
brew install git-lfs
自制配方这里
在 Windows 上,您可以从 Git LFS 网站
下载安装程序2.为您的存储库设置 Git LFS
导航到终端中存储库的目录并运行以下命令来初始化 Git LFS:
git lfs install
3.跟踪大文件
指定 Git LFS 应处理哪些文件。这是通过在存储库中创建或修改
.gitattributes
文件来完成的。例如,要跟踪所有 .psd
文件,您可以将以下行添加到 .gitattributes
:
*.psd filter=lfs diff=lfs merge=lfs -text
您可以通过向
.gitattributes
文件添加更多行来跟踪多种文件类型。
4。添加、提交并推送您的更改
设置 Git LFS 并指定要跟踪的文件后,您可以像往常一样添加、提交和推送更改。 Git LFS 将自动处理大文件。
git add .
git commit -m "Add large files"
git push origin main
如果不同,请将
main
替换为您的分支名称。
5。管理大文件
使用 Git LFS 命令管理大文件。例如,要列出存储库中的所有 LFS 文件,您可以使用:
git lfs ls-files
要从 LFS 跟踪中删除文件,您可以使用:
git lfs untrack "*.psd"
Git LFS 文档可以在这里
找到