해결할 수없는 이상한 문제가 있습니다. 다음은 일어난 일입니다.
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 및 저장소를 확인하고 찾을 수 어디에 내 최신 커밋은 NO입니다. :: scratch head :: 그래서 나는 다시 밀어 :
Everything up-to-date
음 .. 안 그래요. 나는 전에이 문제가 없었는데 이것이 github에 문제가 될 수 있습니까? 아니면 내 자식 프로젝트에서 뭔가 엉망이 되었습니까?
편집하다
신경 쓰지 마, 나는 간단한 일을했다.
git push origin master
그리고 그것은 잘 밀었습니다.