Tôi đang gặp một vấn đề lạ mà dường như tôi không thể giải quyết được. Đây là những gì đã xảy ra:
Tôi có một số tệp nhật ký trong kho lưu trữ github mà tôi không muốn ở đó. Tôi đã tìm thấy tập lệnh này xóa hoàn toàn các tệp khỏi lịch sử git như vậy:
#!/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
Tất nhiên, tôi đã sao lưu trước và sau đó thử nó. Nó dường như hoạt động tốt. Sau đó, tôi đã thực hiện git push -f và được chào đón bằng các thông báo sau:
error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied
error: Cannot update the ref 'refs/remotes/origin/master'.
Mặc dù vậy, mọi thứ dường như đã diễn ra tốt đẹp, vì các tệp dường như đã biến mất khỏi kho lưu trữ GitHub, nếu tôi thử và đẩy lại, tôi nhận được điều tương tự:
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
BIÊN TẬP
$ sudo chgrp {user} .git/logs/refs/remotes/origin/master
$ sudo chown {user} .git/logs/refs/remotes/origin/master
$ git push
Everything up-to-date
Cảm ơn!
BIÊN TẬP
Ồ. Vấn đề. Tôi đã làm việc với dự án này cả đêm và chỉ cần thực hiện các thay đổi của mình:
error: Unable to append to .git/logs/refs/heads/master: Permission denied
fatal: cannot update HEAD ref
Vì vậy, tôi:
sudo chown {user} .git/logs/refs/heads/master
sudo chgrp {user} .git/logs/refs/heads/master
Tôi thử lại cam kết và nhận được:
error: Unable to append to .git/logs/HEAD: Permission denied
fatal: cannot update HEAD ref
Vì vậy, tôi:
sudo chown {user} .git/logs/HEAD
sudo chgrp {user} .git/logs/HEAD
Và sau đó tôi thử lại cam kết:
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
Hoan hô. Tôi nhảy vào http://GitHub.com và kiểm tra kho lưu trữ, và cam kết mới nhất của tôi không tìm thấy ở đâu. :: gãi đầu :: Vì vậy, tôi đẩy một lần nữa:
Everything up-to-date
Ừm ... không giống đâu. Tôi chưa bao giờ gặp vấn đề này trước đây, đây có thể là vấn đề với github? hay tôi đã làm gì đó với dự án git của tôi bị rối tung lên?
BIÊN TẬP
Đừng bận tâm, tôi đã làm một việc đơn giản:
git push origin master
và nó hoạt động tốt.