Voici mon dépôt Git:
https://github.com/benqzq/ulcwe
Il a un répertoire nommé local
et je veux changer son nom en un autre nom (disons, de local
à xyz
).
Le changer manuellement via l'interface graphique de GitHub est un cauchemar car je dois changer le nom du répertoire pour chaque fichier séparément (GitHub n'a pas encore inclus une fonctionnalité "Renommer le répertoire", croyez-le ou non).
Après avoir installé Git, j'ai essayé cette commande:
git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit
Bien que je n'ai reçu aucune invite pour mon mot de passe GitHub, j'ai eu cette erreur:
fatal: Not a git repository (or any parent up to mount point /mnt/c)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Je sais que tout l'intérêt de Git est de télécharger un projet, de le modifier, de le tester, puis de le pousser vers le fournisseur d'hébergement (GitHub dans ce cas), mais pour simplement changer un répertoire, je souhaite une opération directe. Est-ce même possible avec Git?
Dois-je utiliser un autre programme peut-être?
Réponses:
Le message d'erreur fatal indique que vous travaillez à partir d'un endroit qui n'est pas un clone de votre référentiel git. Commençons donc par cloner le référentiel git en premier:
Saisissez-le ensuite:
et renommez le répertoire:
Pour que le changement soit partageable, vous devez le valider:
Vous pouvez maintenant le pousser vers votre dépôt git distant:
et vous verrez le changement dans l'interface GitHub.
la source
Non, il n'y a aucun moyen de le faire en tant qu'opération directe en raison de la structure de git.
Le fonctionnement de git est qu'il stocke une copie de l'ensemble du référentiel, y compris tout l'historique, dans chaque emplacement.
Github, ou Bitbucket, ou tout autre fournisseur d'hébergement n'est essentiellement qu'une autre copie de votre référentiel git, avec une jolie interface Web en haut, qui est traitée comme une source centrale de vérité dans la plupart des workflows, mais l'utilitaire git ne le sait pas.
Les modifications sont suivies comme des validations. Je suppose que par
direct operation
, vous voulez dire un moyen de changer le nom du dossier sans créer de commit. Bien que cela soit possible en réécrivant l'historique, je ne le recommanderais pas, surtout s'il y a plusieurs personnes / machines avec des copies du dépôt git, car cela peut entraîner des incohérences.Le moyen le plus simple de renommer un dossier dans un référentiel git serait de le cloner localement
Si vous avez déjà une copie locale du référentiel, tirez-la pour vous assurer que vous êtes à jour du référentiel distant
Apportez les modifications dont vous avez besoin localement
Qui devrait être automatiquement ajouté à la zone de transit par github. Ensuite, vous devez valider et pousser ces modifications.
Cela va valider la modification dans votre référentiel local, puis pousser ces modifications dans la copie distante du référentiel, dans ce cas, Github.
la source
git clone --depth
Il est possible de renommer un répertoire sans cloner le référentiel, en utilisant l'API GitHub. Je n'ai connaissance d'aucune implémentation.
Source: /programming//a/31567094/370786
la source