Recevoir “fatal: Pas un repository git” lorsque vous tentez d’append un repository Git à distance

Je me présente à Git en suivant ce tutoriel:

  • faire tourner jekyll sur nearfreespeech.net

Tout fonctionne bien jusqu’à la partie où le repository est ajouté à ma machine locale:

git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git 

(Après avoir remplacé USERNAME, NFSNSERVER et REPOAME par les noms corrects), je reçois l’erreur:

 fatal: Not a git repository (or any of the parent directories): .git 

Pouvez-vous m’aider à dépasser cette étape?

Avez-vous créé un référentiel Git local dans lequel cette télécommande est censée être ajoutée?

Votre répertoire local .git un dossier .git ?

Essayez git init .

Vous obtiendrez cette erreur si vous essayez d’utiliser une commande Git lorsque votre répertoire de travail actuel ne se trouve pas dans un référentiel Git. C’est parce que, par défaut, Git recherchera un .git repository .git (à l’intérieur de la racine du projet?), Comme le montre ma réponse à “Git ne montre pas le journal sauf si je suis dans le répertoire du projet” :

D’après la documentation officielle de Linux Kernel Git , GIT_DIR est [une variable d’environnement] définie pour rechercher un répertoire .git (dans le répertoire de travail actuel?) Par défaut:

Si la variable d’environnement GIT_DIR est définie, elle spécifie un chemin d’access à utiliser à la place du .git par défaut pour la base du référentiel.

Vous devrez soit cd dans le repository / la copie de travail, soit vous n’avez pas initialisé ou cloné un référentiel, auquel cas vous devez initialiser un repository dans le répertoire où vous voulez placer le repository:

 git init 

ou cloner un repository

 git clone  cd  

NOTE: cela ne répond pas au problème courant, qui était le problème de l’OP, mais à un problème différent où ce message d’erreur peut apparaître. Je n’avais pas envie de poser de nouvelles questions simplement pour écrire cette réponse, dites-moi si je devrais le faire à la place: P

Je suis arrivé à la situation, très probablement en raison d’une corruption de certains crash que j’ai eu, que j’ai eu cette erreur même lorsque. .git existait.

 smar@aaeru ~/P/Nominatim> git status fatal: Not a git repository (or any of the parent directories): .git smar@aaeru ~/P/Nominatim [128]> ls .git COMMIT_EDITMSG config* FETCH_HEAD HEAD index logs/ modules/ objects/ ORIG_HEAD packed-refs 

Comme je n’avais rien qui avait vraiment besoin d’être préservé, je suis juste allé de l’avant, et j’ai …

 smar@aaeru ~/P/Nominatim [128]> git init Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/ 

Cependant, ne fonctionne toujours pas, comme par exemple le git log renvoie fatal: bad default revision 'HEAD' . Les télécommandes étaient là, alors j’ai fait un git fetch --all et ensuite juste git reset --hard origin/master d’ git reset --hard origin/master pour me rendre à l’état où se trouvait auparavant le repo.

Notez que s’il y a des modifications non validées, vous pouvez les voir avec le git status git diff , git diff , etc. Ensuite, il vous suffit de git diff yourfile > patch avant de git diff yourfile > patch la réinitialisation.

Au moins pour moi, le reflog ( git reflog ) a complètement disparu. Par conséquent, si vous effectuez la réinitialisation et que vous souhaitez éviter certaines modifications, je ne suis pas sûr que vous puissiez les récupérer après la réinitialisation. Donc, assurez-vous d’avoir sauvegardé toutes les modifications que vous ne pouvez pas perdre, en copiant simplement le clone avant d’essayer.

Mon problème était que pour certains problèmes avec mon système d’exploitation, toute commande de mon repository local se terminait par “fatal: Pas un repository git (ou un des répertoires parents): .git”, avec la commande fsck incluse.

Le problème était un fichier HEAD vide .

J’ai pu trouver le nom de la twig sur laquelle j’ai travaillé en .git / refs / heads et ensuite j’ai fait ceci:

 echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD 

Ça a marché.

Dans la ligne de commande / CLI, vous obtiendrez cette erreur si votre répertoire actuel n’est PAS le référentiel. Donc, vous devez d’abord CD dans le repo.

Ce problème m’est apparu après avoir déplacé l’emplacement d’un projet git sur le système de fichiers. Lorsque j’ai exécuté des commandes git, l’erreur s’est produite, par exemple:

 $ git status fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis 

J’ai trouvé dans /home/rospasta/path_old/gitprojecta/.travis/.git le chemin absolu de l’ancien emplacement du projet a été écrit. La mise à jour manuelle de ce chemin du nouvel emplacement a résolu le problème pour moi.

Donc, mon problème peut être ou ne pas être un problème git, mais HTH.

Probablement trop tard mais une autre solution qui pourrait aider les futurs visiteurs. Supprimez d’abord l’ancien répertoire .git

 rm .git 

Puis initialiser à nouveau le repo git

 git init 

Il semble que vous n’allez pas dans votre dossier spécifique. Par exemple, si je travaille sur un projet nommé bugsBunny et qu’il est enregistré dans le dossier d: / work: code, vous devez d’abord vous rendre dans ce dossier en utilisant cd d: / work / code / bugsBunny, puis après cela peut continuer à utiliser vos commandes git.

 $ git status fatal: Not a git repository: 

Saisissez simplement ce qui suit dans votre shell cmd ou git ou tout autre terminal:

 $ git init 

Pour cela, vous devez entrer une commande manquante dans les commandes bitbucket

Veuillez essayer git init.

Dans mon cas, j’ai utilisé Tortoise SVN et j’ai fait l’erreur d’utiliser les fonctions de Visual Studio GIT en même temps. Cela a fait que Visual Studio verrouille le fichier HEAD dans le dossier .git pour que ni VS, ni Tortoise ne puissent accéder au repository et que j’ai reçu l’erreur “fatal: Not a git repo …” des deux applications.

Solution:

  1. Allez dans le dossier .git et renommez “HEAD.lock” en “HEAD”
  2. Décidez d’une application d’administration GIT et ne touchez pas l’autre

Même j’ai eu le même problème. J’ai écrit un script shell qui sauvegardera tous mes codes sur mon repo git les jours ouvrables de la semaine à 17h55 en utilisant crontab. en voyant les journaux de cron, j’ai trouvé le problème mentionné ci-dessus.

Le problème ci-dessus ne survient que lorsque vous essayez d’exécuter des commandes git depuis un répertoire autre que gir (c’est-à-dire depuis un autre répertoire qui n’est pas la copie de travail). pour corriger ce problème, ajoutez -C dans la commande git que vous exécutez de manière à ce que l’ git status soit git -C /dir/to/git status et que git add -A soit git -C /dir/to/git -A

Dans mon cas, j’ai eu le même problème pendant que j’essayais des commandes git (par exemple, git status) en utilisant windows cmd. donc ce que je fais est après avoir installé git pour la fenêtre https://windows.github.com/ dans les variables d’environnement, ajoutez le chemin de classe du git sur la variable “PATH”. généralement, le git sera installé sur C: / user / “username” / appdata / local / git / bin append ceci sur le PATH dans la variable d’environnement

et encore une chose sur la cmd allez dans votre repository git ou cd où votre clone est sur votre fenêtre, ils seront généralement stockés sur les documents sous github cd Document / Github / votre projet après que vous pouvez avoir des commandes git

Je vous remercie

L’erreur ci-dessous semble indiquer que Gits n’a pas trouvé le fichier .git dans le répertoire en cours, ce qui provoque un message d’erreur.

Par conséquent, passez au répertoire du répertoire du référentiel où vous avez extrait le code de git, puis exécutez cette commande.

  • $ git checkout

Allez dans votre dossier source où le repo local est stocké, par exemple le mien se trouve dans c: / GitSource, faites un clic droit dans le dossier, cliquez sur git bash ici, puis sur git status ….

Pour moi, cela concernait la propriété mal formée dans mon .git/ . root possédé .git/HEAD et .git/index , empêchant l’utilisateur jenkins d’exécuter le travail.

GIT_DIR doit être désactivé: unset GIT_DIR

Dans mon cas, j’ai trouvé que git dans Windows était sensible à la casse pour la lettre de lecteur à un certain moment.

Après la mise à niveau de git binary dans les commandes de Windows cli qui fonctionnaient arrêtées. Par exemple, le chemin du script était D : \ bla \ file.txt alors que la commande git n’acceptait que d : \ bla \ file.txt

git fonctionnait bien pour être et tout à coup il a commencé à montrer cette fatal: Not a git repository (or any of the parent directories): .git message.

Pour moi pas sûr de ce qui était corrompu dans le dossier .git, j’ai fait git clone ** newfolder et copié l’intégralité du dossier .git dans mon dossier corrompu / ancien où je faisais des modifications avant que git ne commence à afficher un message d’erreur.

Tout est revenu à la normale et git a également reconnu mes fichiers modifiés / non mis en scène.

restaurer le .git/ORIG_HEAD et les autres fichiers repo root .git

J’ai eu cette erreur après la restauration depuis la sauvegarde, apparemment les fichiers contenus dans la racine du répertoire .git ne sont pas arrivés à la cible, mais tous les sous-dossiers l’ont fait au début. Je pensais que le repository était intact.

Je l’ai corrigé en restaurant les fichiers racine.

J’ai eu ce problème avec le plugin Jenkins Git après des problèmes d’authentification avec GitLab. Jenkins rapportait ‘hudson.plugins.git.GitException: […] stderr: GitLab: le projet que vous cherchiez est introuvable. fatal: Impossible de lire à partir du référentiel distant. ‘

Cependant, si je faisais un “git clone” ou un “git fetch” directement depuis la boîte Jenkins (ligne de commande), cela fonctionnait sans problème.

Le problème a été résolu en supprimant le répertoire entier / workspace dans le dossier des travaux Jenkins pour ce travail particulier, par exemple

 rm -Rf $JENKINS_HOME/jobs/myJenkinsJob/workspace/ 

Vraisemblablement, le dossier local .git était obsolète / corrompu?

Au cas où cela aiderait quelqu’un d’autre, j’ai reçu ce message d’erreur après avoir accidentellement supprimé .git / objects /

fatal: Pas un repository git (ou un des répertoires parents): .git

La restaurer a résolu le problème.