我有一个奇怪的问题,我似乎无法解决.这是发生的事情:
我在github存储库中有一些我不想要的日志文件.我发现这个脚本完全从git历史中删除文件,如下所示:
#!/bin/bash set -o errexit # Author: David Underhill # Script to permanently delete files/folders from your git repository. To use # it, cd to your repository's root and then run the script with a list of paths # you want to delete, e.g., git-delete-history path1 path2 if [ $# -eq 0 ]; then exit 0are still fi # make sure we're at the root of git repo if [ ! -d .git ]; then echo "Error: must run this script from the root of a git repository" exit 1 fi # remove all paths passed as arguments from the history of the repo files=$@ git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $files" HEAD # remove the temporary history git-filter-branch otherwise leaves behind for a long time rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune
当然,我首先做了备份,然后尝试了.它似乎工作正常.然后我做了一个git push -f,并收到以下消息:
error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied error: Cannot update the ref 'refs/remotes/origin/master'.
似乎所有东西都推得很好,因为文件似乎从GitHub存储库中消失了,如果我再试一次,我会得到同样的东西:
error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied error: Cannot update the ref 'refs/remotes/origin/master'. Everything up-to-date
编辑
$ sudo chgrp {user} .git/logs/refs/remotes/origin/master $ sudo chown {user} .git/logs/refs/remotes/origin/master $ git push Everything up-to-date
谢谢!
编辑
哦,哦.问题.我整晚都在做这个项目,只是去做我的改变:
error: Unable to append to .git/logs/refs/heads/master: Permission denied fatal: cannot update HEAD ref
所以我:
sudo chown {user} .git/logs/refs/heads/master sudo chgrp {user} .git/logs/refs/heads/master
我再次尝试提交,我得到:
error: Unable to append to .git/logs/HEAD: Permission denied fatal: cannot update HEAD ref
所以我:
sudo chown {user} .git/logs/HEAD sudo chgrp {user} .git/logs/HEAD
然后我再次尝试提交:
16 files changed, 499 insertions(+), 284 deletions(-) create mode 100644 logs/DBerrors.xsl delete mode 100644 logs/emptyPHPerrors.php create mode 100644 logs/trimXMLerrors.php rewrite public/codeCore/Classes/php/DatabaseConnection.php (77%) create mode 100644 public/codeSite/php/init.php $ git push Counting objects: 49, done. Delta compression using up to 2 threads. Compressing objects: 100% (27/27), done. Writing objects: 100% (27/27), 7.72 KiB, done. Total 27 (delta 15), reused 0 (delta 0) To git@github.com:IAmCorbin/MooKit.git 59da24e..68b6397 master -> master
万岁.我跳上http://GitHub.com并查看存储库,我的最新提交无处可寻.:: scratch head ::所以我再次推动:
Everything up-to-date
嗯......看起来不像.我之前从未遇到过这个问题,这可能是github的问题吗?还是我搞砸了我的git项目?
编辑
没关系,我做了一个简单的事:
git push origin master
它推得很好.
这看起来像你在本地以root身份运行git,从而改变了跟踪origin
分支位置的一些文件的所有权.
修复文件所有权,你应该没问题:
# run this from the root of the git working tree sudo chown -R "${USER:-$(id -un)}" .