"Fatal: pas un référentiel git (ou l'un des répertoires parents)" à partir de l'état de git


99

Cette commande fonctionne pour obtenir les fichiers et les compiler:

git clone a-valid-git-url

par exemple:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

Cependant, git status(ou toute autre commande git) donne alors l' fatal: Not a git repository (or any of the parent directories)erreur ci-dessus .

Qu'est-ce que je fais mal?


6
Le code extrait se trouve dans le liggghtsrépertoire.
Eugen Constantin Dinca

Réponses:


161

Vous devez d'abord cd dans le répertoire:

$ git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts
Cloning into 'liggghts'...
remote: Counting objects: 3005, done.
remote: Compressing objects: 100% (2141/2141), done.
remote: Total 3005 (delta 1052), reused 2714 (delta 827)
Receiving objects: 100% (3005/3005), 23.80 MiB | 2.22 MiB/s, done.
Resolving deltas: 100% (1052/1052), done.

$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ cd liggghts/
$ git status
# On branch master
nothing to commit (working directory clean)

1
Vous obtenez également cette erreur lorsque git utilise son propre répertoire .git. J'ai fait un tirage et j'ai vu le message "Empaquetage automatique du référentiel en arrière-plan pour des performances optimales." J'ai ensuite essayé de faire d'autres opérations, ne recevant que le message d'erreur d'OP. Mon dossier .git est toujours là, mais git l'a en quelque sorte corrompu. L'exécution a git initrésolu le problème.
Cerin

Que je suis bête. Essayer le statut de git avant d'aller dans le répertoire :) Merci beaucoup.
webHasan

12

Je viens de recevoir ce message et il y a une réponse très simple avant d'essayer les autres. Dans le répertoire parent, saisissezgit init

Cela initialisera le répertoire pour git. Ensuite, git addet git commitdevrait fonctionner.


Avant ou après le clone? Cela créerait-il un nouveau repo git? Comment cela fonctionnerait-il avec le dépôt git existant et l'historique qui a été cloné? Qu'arrive-t-il au remoteréglage d' origine sous cet arrangement?
Michael Durrant

11

Dans mon cas, était une variable d'environnement GIT_DIR , que j'ai ajoutée pour accéder plus rapidement.

Cela a également cassé tous mes dépôts locaux dans SourceTree :(


5

Parfois, c'est à cause de ssh. Vous pouvez donc utiliser ceci:

git clone https://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

au lieu de:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

J'obtenais l'erreur en essayant simplement de cloner un dépôt sur ma machine locale. Je suis passé de https: // À git: // et il a été cloné avec succès. Merci de m'avoir pointé dans la bonne direction.
Scott Wade le

4

dans mon cas, j'ai eu le même problème pendant que j'essayais des commandes git (par exemple, l'état de git) en utilisant Windows cmd. donc ce que je fais est après avoir installé git pour window 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 l' C:/user/"username"/appdata/local/git/binajout de ceci sur le PATH dans la variable d'environnement

et encore une chose sur la cmd, allez dans votre référentiel git ou cd où votre clone se trouve sur votre fenêtre, généralement ils seront stockés sur les documents sous github

cd Document/Github/yourproject

après cela, vous pouvez avoir toutes les commandes git


3

J'ai eu un autre problème. J'étais dans un répertoire git, mais j'y suis arrivé via un lien symbolique. J'ai dû aller directement dans le répertoire (c'est-à-dire pas via le lien symbolique), puis cela a bien fonctionné.


3
git clone https://github.com/klevamane/projone.git
Cloning into 'projone'...
remote: Counting objects: 81, done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 81 (delta 13), reused 78 (delta 13), pack-reused 0
Unpacking objects: 100% (81/81), done.

vous devez "cd projone"

alors vous pouvez vérifier le statut.


Une des raisons pour lesquelles cela a été difficile à remarquer au début, c'est parce que vous avez déjà créé un dossier avec le même nom sur votre ordinateur et c'est là que vous avez cloné le projet, vous devez donc à nouveau changer de répertoire



3

Cette erreur a été résolue lorsque j'ai essayé d'initialiser git à l'aide de git init . Ça a marché


2

Dans mon cas, le référentiel d'origine était simple.

Donc, j'ai dû taper (dans Windows):

mkdir   dest
cd dest
git init
git remote add origin a\valid\yet\bare\repository
git pull origin master

Pour vérifier si un référentiel est un simple:

git rev-parse --is-bare-repository 

1

Simplement, après avoir cloné le dépôt, vous devez CD (changer votre répertoire actuel) dans le nouveau dossier cloné

git clone https://User_Name@bitbucket.org/Repo_Name.git

cd Repo_Name

1

Si Existing Project Solution est prévu de passer sur TSF dans VS Code:

ouvrez le Terminal et exécutez les commandes suivantes:

  1. Initialiser git dans ce dossier (répertoire racine)

    git init

  2. Ajouter Git

    git add .

  3. Liez votre TSf / Git à ce projet - {url} remplacez par votre adresse git

    git remote add origin {url}

  4. Validez ces changements:

    git commit -m "initial commit"

  5. Push - J'ai poussé le code en tant que version1, vous pouvez utiliser n'importe quel nom pour votre branche

    git push origin HEAD:Version1


0

J'ai soudainement eu une erreur comme dans n'importe quel répertoire où j'ai essayé d'exécuter une commande git à partir de:

fatal: Not a git repository: /Users/me/Desktop/../../.git/modules/some-submodule

Pour moi, il s'est avéré que j'avais un fichier caché .gitsur mon bureau avec le contenu:

gitdir: ../../.git/modules/some-module

Supprimé ce fichier et corrigé.


0

J'ai le même problème de mon réseau de bureau. J'utilise cette commande mais ca marche pas pour moi url, donc comme ceci: avant $ git clone https://gitlab.com/omsharma/Resume.git

Après avoir utilisé cette URL: $ git clone https://my_gitlab_user@gitlab.com/omsharma/Resume.git essayez-la.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.