我想从我的 git 存储库中删除两个不再存在的文件。
我把它们放进去,投入,并试图推动,但它们太大了。所以我把它们拿出来,继续工作,然后承诺,试图推动,但它仍然给了我同样的错误。我想他们仍然在某个地方的历史中。
我认为我让问题变得更糟,因为我一直在那个分支中工作并提交了 1 次。然后我将该分支合并回主分支。
所以我搜索了一个解决方案并找到了bfg。
但是页面上的说明对我来说没有意义。
首先,
$ git clone --mirror git://example.com/some-big-repo.git
我应该从哪里克隆?我在 github.com 上的远程仓库没有提交和合并,因为我添加了大文件。但是这些说明看起来好像我应该从那里得到它。(我从本地仓库克隆。)
下一个,
$ java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git
是some-big-repo.git
镜像仓库还是正常的本地仓库?(我为此使用了镜像仓库。)
然后我检查了我的历史记录是否已更新并尝试过,
$ cd some-big-repo.git
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive
(为此,我在镜像克隆中)出现错误。
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To /home/cole/main_repo
+ 94b9a0d...c7c4317 work -> work (forced update)
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '/home/cole/main_repo'
这对我来说很有意义。是的,我目前确实已经master
检查过了。但是,我还能做什么呢?如果我以另一种方式尝试,我只能看到正在发生的问题。