Je me présente à Git en suivant ce tutoriel:
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:
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.
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.