web-dev-qa-db-fra.com

La commande "git add" renvoie le message d'erreur "fatal: repository externe"

Je viens d'entrer dans le monde merveilleux de git. Je dois soumettre une série de modifications apportées à mon programme, situées dans un répertoire appelé:/var/www/myapp

J'ai créé un nouveau répertoire "/ home/mylogin/gitclone" . À partir de ce répertoire, j'ai fait une commande "git clone" contre le dépôt public et j'ai pu obtenir la dernière copie créée. 

J'essaie maintenant de comprendre comment récupérer tous les fichiers de mon dossier de travail (/ var/www/myapp) et les "archiver" dans le référentiel maître. 

De/home/mylogin/gitclone, j'ai essayé la commande suivante:

"git add/var/www/myapp" mais je reçois un message d'erreur indiquant que le dossier que j'ai essayé d'ajouter est en dehors du référentiel. 

Pouvez-vous me donner quelques indications sur ce que je fais mal? De plus, j'aimerais tout ajouter, que ce soit différent du maître ou non. Merci.

19
dot

Tout d'abord dans le dossier de clonage, vous pouvez créer une branche (pour que le maître reste intact)

Git Branch [name]

Ensuite, copiez simplement le fichier souhaité (dans votre ancien dossier) dans le dossier clone.

Lorsque vous avez terminé, ajoutez/validez votre modification et Fusionnez votre branche dans la branche "maître"

Cela ressemblera à quelque chose comme ça.

git add .
git commit -m "Comments"
git checkout master
git merge [new_branch]

Essayez ce tutorial de GitHub

11
JudgeProphet

Vous devrez déplacer tous les fichiers de/var/www/myapp vers/home/mylogin/gitclone, puis faire un git add . puis un git commit -m "Your message"

4
Catfish

C’est parce que vous utilisez des versions dans /home/mylogin/gitclone et que git suit tout intérieur ce dossier. Vous ne pouvez pas suivre d'autres dossiers en dehors de ce référentiel.

Une solution peut être de créer un sous-module ou d'utiliser un lien symbolique à l'aide de ln -s.

2
code ninja

Pour ajouter des fichiers ou des dossiers à votre référentiel, ils doivent se trouver dans le dossier que vous avez créé avec "git clone". Donc, copiez/collez votre application dans votre dossier git local, puis allez-y et faites "git add *" et vous pourrez alors vous engager sur le serveur avec "git commit -m 'message' "et enfin Transmettez les modifications au serveur avec" git Push "

1
Jeremy

Lors de la mise à niveau vers la version 2.12.2 de Git, cette erreur est apparue, j'ai noté que j'ajoutais le fichier avec un chemin complet, tel que:

git add c:\develop\project\file.text

une fois supprimé, le chemin complet commence à fonctionner, comme:

git add file.text
1
Pedro Lopes

Git ne surveille que les fichiers et les dossiers du dossier racine, qui comprend le répertoire .git et les sous-dossiers du dossier racine. Le dossier que vous essayez d'ajouter est en dehors du champ d'application de git. 

Ce que vous aimeriez réellement faire, c’est d’abord git checkout -b myapp qui créera et extraira une nouvelle branche en fonction de la branche principale du référentiel que vous avez cloné. Ensuite, vous copiez tous vos fichiers et les validez avec git commit -a -m "Short descriptive name about what you did". Le paramètre -a que vous avez passé à git commit permet d'inclure toutes les modifications apportées au référentiel et -m d'inclure le message de validation dans la commande réelle. Après cela, vous pouvez soit Push revenir dans le référentiel principal si vous y avez accès en écriture, soit le transférer dans votre propre référentiel public, ou ne pas le pousser du tout. 

Ce que j'ai décrit ci-dessus correspond en gros aux bases de Git. Essayez de lire ce livre qui est très descriptif.

0
Learath2

Mon scénario est que le chemin du dépôt git a un lien symbolique et que git jette cette erreur quand add file dit "/home/abc/GIT_REPO/my_dir/my_file".and"/home "est en fait un lien logiciel vers"/devhome ".

code ninja m'a donné un peu de lumière quand j'ai essayé de déboguer ce cas.

J'ai donc essayé d'obtenir le répertoire cible en utilisant la commande readlink -f /home/abc/GIT_REPO avant d'exécuter la commande add.

Et puis tout fonctionne à merveille!

0
Keith

Ce message peut également apparaître lorsque le nom du fichier est répertorié dans le fichier .gitignore.

0
Romano