相关疑难解决方法(0)

如何修复错误的合并,并将您的好提交重放到固定合并?

我意外地将一个不需要的文件(filename.orig在解析合并时)提交到我的存储库几个提交之前,直到现在我才注意到它.我想从存储库历史记录中完全删除该文件.

是否可以重写更改历史记录,以便filename.orig从未首先添加到存储库中?

git git-filter-branch git-rewrite-history git-rm

399
推荐指数
6
解决办法
30万
查看次数

从Git历史记录中删除敏感文件及其提交

我想在GitHub上放置一个Git项目,但它包含某些带有敏感数据的文件(用户名和密码,比如/ config/deploy.rb for capistrano).

我知道我可以将这些文件名添加到.gitignore,但这不会删除他们在Git中的历史记录.

我也不想通过删除/.git目录重新开始.

有没有办法删除Git历史记录中特定文件的所有痕迹?

git git-filter-branch git-commit git-rewrite-history

330
推荐指数
9
解决办法
10万
查看次数

如何在git历史中查找/识别大型提交?

我有一个300 MB的git repo.我目前检出的文件重2 MB,git repo重298 MB.这基本上是一个仅限代码的回购,重量不应超过几MB.

最有可能的是,有人在某个时候偶然犯了一些重文件(视频,巨大的图像等),然后将它们删除......但不是从git中删除,所以我们有无用大文件的历史.如何在git历史记录中追踪大文件?有400多个提交,所以一个接一个将是耗时的.

注意:我的问题不是关于如何删除文件,而是如何在第一时间找到它.

git

313
推荐指数
10
解决办法
9万
查看次数

Git:如何从历史提交中删除文件?

我提交了id 56f06019(例如).在那个提交中,我不小心提交了大文件(50Mb).在另一个提交中,我添加相同的文件,但大小合适(小).现在我克隆的回购太重了:(如何从回购历史中删除那个大文件以减少我的回购的大小?

git

107
推荐指数
3
解决办法
4万
查看次数

从Git repo清除文件失败,无法创建新备份

我尝试通过运行以下命令从远程仓库中删除文件:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
Run Code Online (Sandbox Code Playgroud)

但是Git抱怨说

无法创建新备份.以前的备份已存在于refs/original/
Force中使用-f
rm 覆盖备份:无法删除/.git-rewrite/backup-refs:权限被拒绝
rm:无法删除目录/.git-rewrite:目录不为空

这是在我已经删除了Windows上的.git-rewrite目录之后.

我该如何删除该文件?这是一个29Mb的文件,坐在我的仓库,所以我非常需要删除该文件.

我试图删除提交git rebase -i,但显然因为提交触及了很多不同的文件,Git抱怨冲突,我流产是安全的.

git git-filter-branch git-commit git-rewrite-history

104
推荐指数
3
解决办法
4万
查看次数

如何删除git中错误提交的大文件

可能重复:
如何从Git中的提交历史中清除一个巨大的文件?

我做了一件蠢事.想象一下,我提交了一个100MB的文件.然后我看到这个并删除此文件并再次提交.这是删除文件的正常过程.

但现在副作用是我的历史很重,因为它保存了这个大文件(我相信这就是为什么它很重).我只使用本地git,所以我不在任何服务器同步.

如何最终删除此文件并节省磁盘空间?

git git-rewrite-history

82
推荐指数
3
解决办法
5万
查看次数

git gc --aggressive vs git repack

我正在寻找减少git存储库大小的方法.搜索引导我到git gc --aggressive大多数时间.我还读到这不是首选方法.

为什么?如果我跑步,我应该注意什么gc --aggressive

git repack -a -d --depth=250 --window=250推荐结束gc --aggressive.为什么?如何repack减少存储库的大小?此外,我不太清楚旗帜--depth--window.

我应该怎么选择gcrepack?什么时候应该使用gcrepack

git version-control github

78
推荐指数
5
解决办法
3万
查看次数

在GitHub上完全从Git repo和remote远程删除文件

我不小心添加了一个图像文件夹并提交.然后,我又做了一次提交.然后我git rm -f ./images再次使用并提交了这些文件.

现在,我在那个分支(master)中做了很多提交.在我的HEAD中,我没有该./static/images文件夹.

因此,我的回购规模增加了很多.如何完全删除这些斑点?我想从我的远程GitHub仓库中删除它.

git git-remote git-filter-branch git-rm

77
推荐指数
2
解决办法
7万
查看次数

从git存储库中删除文件(历史记录)

(解决了,看到问题正文的底部)现在
寻找这个,我现在拥有的是:

几乎相同的方法,但它们都将对象留在包文件中......坚持.
我尝试了什么:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch file_name'
rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc
Run Code Online (Sandbox Code Playgroud)

包中还有文件,这就是我所知道的:

git verify-pack -v .git/objects/pack/pack-3f8c0...bb.idx | sort -k 3 -n | tail -3
Run Code Online (Sandbox Code Playgroud)

还有这个:

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch file_name" HEAD
rm -rf .git/refs/original/ && git reflog expire --all &&  git gc --aggressive --prune
Run Code Online (Sandbox Code Playgroud)

相同...

尝试过的git clone技巧,它删除了一些文件(约3000个)但最大的文件仍然存在...

我在存储库中有一些大的遗留文件,大约200M,我真的不希望它们在那里...而且我不想将存储库重置为0 :(

解决方案:这是摆脱文件的最短路径:

  1. 检查.git/packed-refs - 我的问题是我有refs/remotes/origin/master一个远程存储库的行,删除它,否则git将不会删除这些文件
  2. (可选) git verify-pack -v .git/objects/pack/#{pack-name}.idx | sort …

git version-control git-rewrite-history

76
推荐指数
4
解决办法
3万
查看次数

git rm - 致命:pathspec与任何文件都不匹配

我偶然在项目文件夹中添加了9000多张照片.并承诺他们.然后从磁盘中删除它们.承诺.

现在我尝试将更改推送到git服务器.但它需要太长时间并尝试发送12 Gb的数据.

我检查了磁盘上的文件大小,看到真正的.git文件夹需要12 Gb.

如何从那里删除照片?我试过了git rm,但失败了:

? git rm public/photos
fatal: pathspec 'public/photos' did not match any files
Run Code Online (Sandbox Code Playgroud)

因为我已经从磁盘上删除了它们,但它们仍然在.git文件夹中.

我试图添加public/photos.gitignore:

public/photos/
*.zip
Run Code Online (Sandbox Code Playgroud)

但没有结果.当然,我可以hard reset head在我的项目中没有这么多垃圾照片.但从那时起我多次承诺并在代码中做了很多改变.

git git-filter-branch

60
推荐指数
5
解决办法
10万
查看次数