相关疑难解决方法(0)

如何删除git中一个文件的历史记录,仅保留最新版本?

我在git储存库中有一个很大的二进制文件,在几次提交中已更改了它。这些提交还包括对其他文件的更改。我只想在存储库中拥有二进制文件的最新版本,但想保留在这些提交中更改过的其他文件的历史记录。

所有有问题的提交都已被推送到github,并已被团队中的其他成员撤出。

我怎样才能做到这一点?

编辑:我不相信这是其他引用问题的重复。如以下评论中所述,我已经看过这个问题,但想要删除文件的每个版本,但最新版本除外。另一个问题的答案中未解决此标准。

git git-rewrite-history

6
推荐指数
1
解决办法
1498
查看次数

删除旧提交:`git rebase`导致合并冲突

不幸的是,我们不久前意外地检查了一个大的二进制文件,直到今天没有人注意到.现在我想删除该提交并保留剩余的历史记录.我知道改变推进历史的警告,但在这种情况下,我无法避免它.

我一直试图达到这个~1h但却未能得到它.我找到的最好的命令是

git rebase --interactive --preserve-merges $(EVIL_COMMIT)^
Run Code Online (Sandbox Code Playgroud)

并在编辑器中评论出第一次提交是邪恶的.

不幸的是,git rebase在合并时停止并提示手动解决合并冲突.邪恶的提交只添加了我们的软件为测试目的计算的一些示例文件.因此,它们不应该与刚刚丢失的示例文件发生任何冲突.

  1. 我不明白合并冲突的起源.有人可以解释一下吗?
  2. 怎么解决?

我在Google和SO搜索上花了很多时间.一些线程涵盖了类似的主题,但是使用的语法在今天的Git版本中不再可用,或者它对我不起作用(我之前仅描述了一种方法,因为它是最简单的方法).

git git-merge git-rebase

5
推荐指数
1
解决办法
5378
查看次数

如何从bitbucket中的旧提交中删除大文件

几个月前我做了一些糟糕的提交后,我的bitbucket repo变得非常大(1.6 GB).我没有意识到情况有多严重(noob ..),因为一个同事试图克隆它并且失败了(太大了).

我仔细阅读了这篇文章为什么我的git存储库如此之大?并做了以下(如@Vi建议):

  • 检测我的仓库历史记录中的胖文件

    git rev-list --all --objects |     sed -n $(git rev-list --objects --all | \
    cut -f1 -d' ' | \
    git cat-file --batch-check | \
    grep blob | \
    sort -n -k 3 | \
    tail -n40 | \
    while read hash type size; do 
     echo -n "-e s/$hash/$size/p ";
    done) |
    sort -n -k1
    
    Run Code Online (Sandbox Code Playgroud)

    假设其中一个胖文件是mybigfile.gz

  • 从repo中删除mybigfile.gz

    git filter-branch -f  --index-filter \
    'git rm --force --cached --ignore-unmatch mybigfile.gz' \
    -- …
    Run Code Online (Sandbox Code Playgroud)

git github bitbucket

5
推荐指数
1
解决办法
1746
查看次数

Git - 如何重置“推送”

不知何故,我有一个非常大的本地存储库,因为我不小心添加了超过 2 GB 的文件,并且不假思索地试图推动它。我中止了,删除了文件并重新提交,但是当我尝试git push origin master使用 Bitbucket 时,它失败了:

fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我的 .git 文件仍然很大,尽管我早就删除了不需要的文件。由于推送超过 2 GB,Bitbucket 说我需要将其设置http.postBuffer为更高的数字。我已经做过很多次了,但在尝试了大约 15 次之后,我想重新开始。

git status 给我这个:

On branch master
Your branch is ahead of 'origin/master' by 4 commits.
  (use "git push" to publish your local commits)
Run Code Online (Sandbox Code Playgroud)

但是由于推送永远不起作用,我该如何解决?最坏的情况是我可以炸毁 repo 并重建它,但我想知道是否有办法重置推送,因为它一直失败。

git push bitbucket

5
推荐指数
1
解决办法
8856
查看次数

从 git commit 中删除大文件

我将一个 150MB 的视频添加到我的项目源文件中,并在不知不觉中提交了它。然后,我尝试git push提交到我的远程存储库,并注意到推送挂起了一段时间,然后最终失败,吐出以下内容:

Counting objects: 17, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (16/16), done.
Writing objects: 100% (17/17), 145.48 MiB | 138.00 KiB/s, done.
Total 17 (delta 13), reused 0 (delta 0)
remote: Resolving deltas: 100% (13/13), completed with 12 local objects.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 8b4191f1a1055e7dea4412f80b5125d2
remote: error: See http://git.io/iEPt8g for more information. …
Run Code Online (Sandbox Code Playgroud)

git

5
推荐指数
1
解决办法
5018
查看次数

当 git push 到远程仓库时出现错误“文件 java_pid66619.hprof 是 661.61 MB;这超出了 GitHub 的文件大小限制 100.00 MB”

我正在使用 Intellij IDE 开发 Java AWT 应用程序。在我 git 提交我的代码后,我推送到存储库:

me@mine-laptop myproject (master)$ git push origin master
Enumerating objects: 77, done.
Counting objects: 100% (77/77), done.
Delta compression using up to 4 threads
Compressing objects: 100% (58/58), done.
Writing objects: 100% (76/76), 114.51 MiB | 957.00 KiB/s, done.
Total 76 (delta 5), reused 1 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: …
Run Code Online (Sandbox Code Playgroud)

java git github intellij-idea

5
推荐指数
1
解决办法
2767
查看次数

git在添加到.gitignore后是否从版本控制中删除文件?

我不小心把我的Python虚拟环境目录包含venv在我的所有git commit和push活动中.

我刚刚加入venv了我的.gitignore.但我的.git文件夹仍然很大(我假设因为之前的提交和跟踪venv).

我怎么能得到git完全忘记跟踪venv.git再次将我的文件夹缩小到合理的大小,因为它使Heroku推动了一场噩梦.

git

4
推荐指数
1
解决办法
2187
查看次数

本地是远程源主机提前5次提交,我怎样才能看到将要上传的内容?

我不小心在git中添加了一个大的20mb文件,我做了一个-ammend并删除了该文件.

在做一个git push origin master之前,我想确保删除该文件.

我尝试做一个git push origin master,它花了很长时间,传输达到7mb所以我认为大文件仍然在历史的某个地方.

如何判断大文件是否在git的repo历史记录中?

git

3
推荐指数
1
解决办法
2376
查看次数

Git拉/推错误:RPC失败;结果= 22,HTTP代码= 408

我是GIT的新手。我正在使用Git 1.7.9.5版本。

我正在托管在github上的项目。在某个时候从github推送和提取代码时,它可以正常工作,有时它会给我错误。

错误:RPC失败;结果= 22,HTTP代码= 408

致命:远端意外挂断

我没有什么错。如果有人可以建议我一些问题,那可能是问题所在。

git github git-branch

3
推荐指数
3
解决办法
4430
查看次数

Git存储库大小比它应该大

所以我在个人服务器上使用git,我有一个旧的仓库,我需要更新.我删除了一堆旧文件并提交并推动了更改.我在我的服务器上使用Web UI(Gitlist).当我使用这个GUI下载repo作为zip文件时,它的大小正确,大约41MB.然而,当我克隆回购时,由于其中一个./git/objects/pack文件的大小约为900MB ,因此它更接近于演出.

当它真的应该小得多时,为什么回购如此之大?

git

3
推荐指数
1
解决办法
1619
查看次数