7
votes

Comment puis-je renommer le répertoire .git?

Comment puis-je renommer le répertoire .git ?

Dites par exemple, j'ai un repo que je travaille avec depuis un certain temps, mais je décide maintenant de renommer le répertoire .git. J'ai essayé la commande Bash MV mais après que je l'ai fait ce statut GIT a déclaré que mon répertoire de travail n'est pas un référentiel GIT.


4 commentaires

Pourquoi avez-vous décidé de faire ça?


Que voudriez-vous renommer le répertoire .git ? C'est comme s'il voulait renommer la commande git à autre chose. Êtes-vous sûr de ne pas vouloir renommer le répertoire repo ?


@anirvan bien, en fait, devriez-vous renommer le commandement de git, cela fonctionnerait toujours;)


@anirvan, je ne peux pas parler pour Op, mais la raison pour laquelle je veux renommer le dir .Git Dir est d'avoir un repo local pour un projet qui est également géré dans TFS. TFS voit le dossier .git et suppose que j'utilise simplement Git, de sorte que je ne puisse pas tous les deux se connecter au repo TFS et que la solution soit ouverte simultanément.


5 Réponses :


10
votes

Vous ne pouvez pas et ne doit pas renommer le répertoire .git lui-même, son nom fixe (puits, sauf si vous ne passez pas - git-dir = à chaque commande git ou Définissez la variable git_dir d'environnement). Recherches GIT pour ce répertoire lorsqu'elle effectue des opérations sur le référentiel, telles que Statut GIT .

Pourquoi décidez-vous que vous voulez renommer le dir "Git Dir? Si vous souhaitez renommer le référentiel, renommez simplement le répertoire parent de .git


3 commentaires

J'ai trouvé utile d'avoir un repo git enraciné à mon ~ / répertoire pour suivre mes dotfiles et voir ce qui modifie diverses applications apportées aux fichiers de configuration. Cependant, l'EDI telle que Eclipse, détecter l'espace ~ / Working (même ignoré) et peut fréquemment causer des opérations longues telles qu'un "statut git" non mis en cache sur un grand dir. Il existe des moyens d'exclure le repo racinaire de chaque outil à l'aide de préférences, mais il est plus simple de renommer le dirgict à .git Dir à .git_alt, et juste passer dans --git-dir = ~ / .git_alt quand je veux suivre quelque chose lié à mon homedir git repo.


Une raison de faire cela est que OneDrive (pour les affaires) ne s'entend pas bien avec des dossiers qui changent beaucoup de contenu (par exemple git). Je pense que je pense changer mon nom de dossier Git caché de référentiels actifs afin que je puisse "faire" Onedrive l'ignorer (en utilisant des caractères non valides tels que ). Selon la réponse de Microsoft sur UserVoice.com, ils ne prévoient pas de mettre en œuvre une ignore globale pour ces types de chemins à tout moment (Ajout de caractères non valides constitue donc une solution de contournement potentielle).


Il est impossible d'obtenir un studio visuel pour ignorer un dossier .git et non-basculer le plug-in de la source Source s'il existe même s'il doit utiliser TFS pour le contrôle de la source.



0
votes

Vous ne pouvez pas renommer le répertoire .git. Git a besoin de pouvoir le trouver.


0 commentaires

1
votes

vous ne le faites pas.

Git détermine si vous êtes dans un référentiel en recherchant le répertoire .git dans le répertoire actuel, puis le répertoire parent, puis sur l'arborescence. * Si vous le renommez, git n'a aucune idée où regarder. Fixez votre référentiel en le renommant sur .git .

Si vous essayez réellement d'accomplir quelque chose ici en plus de renommer simplement des annuaires pour vous amuser, modifiez votre question ou posez une nouvelle sur votre vrai problème.


* Afin de supporter des référentiels nus, qui contiennent essentiellement le contenu du répertoire .git au niveau supérieur, il recherche également certains fichiers.


0 commentaires

22
votes

aucune idée de la raison pour laquelle vous voudrez jamais renommer cela, mais de toute façon ...

Git attend:

  • soit un .git pour exister sous le répertoire actuel, ou un de ses parents,
  • ou la variable d'environnement GIT_DIR GIT_DIR .

    En règle générale, à moins que des circonstances très spéciales ne soient en vigueur, vous ne devriez jamais semer à part .git . C'est ce répertoire qui contient tout (de la même manière Subversion 1.7+ utilise un répertoire .svn utilise des répertoires cvs - seulement ce git utilise uniquement un répertoire à la racine )

    La seule exception à ce sujet sont des référentiels nus, pour lesquels vous devez être dans le répertoire GIT lui-même - mais vous ne les touchez jamais directement que vous ne savez pas vraiment ce que vous faites.


2 commentaires

Subversion n'utilise également qu'un répertoire unique à la racine du projet depuis V1.7


Je ne comprendrais peut-être pas quelque chose à propos de la façon dont Git fonctionne. Par exemple, lorsque je clonage d'une répétition distante comme: git clone git: //git.kernel.org/pub/scm/git/git.git Comment le répertoire git est-il accédé via ../git.git?



0
votes

J'ai eu le même problème à cause d'un bogue dans Visual Studio 2013 (vs 2013) en combinaison avec l'outil TFS. Le projet TFS ne connecte ni ne commence quand il trouve un projet de placement local que vous avez ajouté auparavant.

Fermer Fermer vs 2013, puis renommez le fichier "git "à un autre postfix (e. g." test.giRenamed "). Cela rend la connexion à TFS-Projets disponibles à nouveau au prochain début de VS 2013.

Pour éviter un référentiel git-cassé local, veuillez nommer le fichier '.git'-fichier de retour après.

Malheureusement, Windows-Explorer ne vous permet pas de renvoyer un répertoire à "git "en raison de leurs polices d'annuaire utilisateur.

Je viens de renommer le dossier sur une machine Linux ou via l'outil Windows-Explorer-outil "Total Commander" Retour.


0 commentaires