J'ai un problème étrange que je n'arrive pas à résoudre. Voici ce qui s'est passé :
J'avais quelques fichiers log dans un dépôt github que je ne voulais pas y trouver. J'ai trouvé ce script qui supprime complètement les fichiers de l'historique git comme ceci :
#!/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
Bien entendu, j'ai d'abord effectué une sauvegarde, puis j'ai essayé. Elle semblait fonctionner correctement. J'ai ensuite fait un git push -f et j'ai été accueilli par les messages suivants :
error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied
error: Cannot update the ref 'refs/remotes/origin/master'.
Tout semble avoir été poussé correctement, car les fichiers semblent avoir disparu du dépôt GitHub, si j'essaie de pousser à nouveau, j'obtiens la même chose :
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
EDIT
$ sudo chgrp {user} .git/logs/refs/remotes/origin/master
$ sudo chown {user} .git/logs/refs/remotes/origin/master
$ git push
Everything up-to-date
Gracias.
EDIT
Oh Oh. Problème : je n'ai pas été en mesure d'obtenir des informations sur l'état de l'environnement. J'ai travaillé sur ce projet toute la nuit et je viens d'aller livrer mes modifications :
error: Unable to append to .git/logs/refs/heads/master: Permission denied
fatal: cannot update HEAD ref
C'est ce que je fais :
sudo chown {user} .git/logs/refs/heads/master
sudo chgrp {user} .git/logs/refs/heads/master
J'essaie à nouveau d'effectuer la validation et j'obtiens :
error: Unable to append to .git/logs/HEAD: Permission denied
fatal: cannot update HEAD ref
C'est ce que je fais :
sudo chown {user} .git/logs/HEAD
sudo chgrp {user} .git/logs/HEAD
Puis j'essaie à nouveau d'effectuer l'engagement :
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
Hourra ! Je saute sur http://GitHub.com et je vérifie le dépôt, et mon dernier commit n'est nulle part. ::scratch head: : Donc je pousse à nouveau :
Everything up-to-date
Umm... ça n'en a pas l'air. Je n'ai jamais eu ce problème auparavant, est-ce que ça pourrait être un problème avec github ? ou est-ce que j'ai raté quelque chose avec mon projet git ?
EDIT
Je n'ai pas fait attention, j'ai fait simple :
git push origin master
et il a bien poussé.