Wie benenne ich den Git-Stammordner um?


85

Ich habe gerade angefangen, Git in Vista zu verwenden, mit meinem Repository unter /path/to/project/git repo.

Ich habe jetzt festgestellt, dass der Speicherplatz im Ordnernamen eine kleine Irritation ist, wenn ich in Git Bash arbeite.

Kann ich den Ordner einfach umbenennen /path/to/project/gitrepo? Ist alles in der Git-Konfiguration relativ oder gibt es etwas, das explizit auf den übergeordneten Ordner verweist?

Ich habe versucht, nur eine Windows-Kopie des Hauptordners zu erstellen und git bash darauf auszuführen, und 'git log' zeigt die Änderungen an, die ich zuvor vorgenommen habe. Ich gehe also davon aus, dass das Umbenennen des Hauptordners in Ordnung ist, aber ich möchte sicher sein, bevor ich weiter gehe.

Antworten:


53

Zu ändern , etwas Greg ‚s Antwort , ja, alles mit einer Git - Repo ist in Bezug auf das .gitübergeordnete Verzeichnis, aber:

(und dies wird Sie wahrscheinlich nicht direkt betreffen, ich erwähne diese Gründe hier nur der Vollständigkeit halber.):

  • Der Pfad des Repos selbst kann von anderen Diensten referenziert werden, die auf Ihrem Computer ausgeführt werden (Apache, ssh, ein anderes Repo, das Ihr Repo als Remote deklariert, unter Verwendung des vollständigen Dateipfads, eine Gitolite- Schicht, die Ihre Repos in einem bestimmten Pfad deklariert, ... )
  • Einige Operationen verwenden den vollständigen Pfad des Repos (wie zum Beispiel die GIT_INDEX_FILEVerwendung innerhalb eines filter-branchBefehls, siehe diesen Thread ). Benennen Sie das Stammverzeichnis also offensichtlich nicht um, während Sie eine komplexe Operation für Ihr Repo ausführen.

Außerdem kopiert eine "Windows-Kopie" (anstelle von a git clone) alles, einschließlich Hooks, die einen absoluten Pfad in ihrem Skript enthalten können, wenn Sie sie bearbeitet und diese Art von Änderung vorgenommen haben.


2
Wenn also jemand praktische, explizite Schritte hat, um dies sicherzustellen, wäre dies sehr umsetzbar.
Ahnbizcad

@gwho welcher Schritt, neben dem Umbenennen des Repo-Ordners?
VonC

87

Ja, es ist sicher, den Ordner mit einem Git-Repository umzubenennen. Alle Pfade im Git-Repository sind relativ.


4

Bitte überprüfen Sie zuerst die Kommentare ...

Meiner Meinung nach ist es am besten, den Git-Workflow zu verwenden , insbesondere wenn Sie einen Git-Server (Remote Master Repository) verwenden. Dies bedeutet:

  • erhalten Sie das alte Verzeichnis in Synchronisierung mit Ihrem git - Server ( git pull, git pushund schließlich , git statusum zu sehen , ob alles in Ordnung ist)
  • git clone <former directory> <new directory>

(Da ich auch neu bei GIT bin, ist dies möglicherweise nicht die vollständige, richtige Antwort. Ich hatte die gleiche Frage wie Mick und zu Lernzwecken habe ich versucht, es auf die Git-Art zu tun :) Danke für den Hinweis, vonC! Bitte korrigieren Sie mich bei Bedarf :)


1
Wenn Sie git clone <former directory> <new directory>, müssen Sie nicht die <new directory>erste erstellen . Der git clonewird es für Sie erstellen.
VonC

3
Ich glaube nicht, dass das macht, was du willst. Dies legt den Ursprung von <new directory>to fest <old directory>. Also würde sich ein git remote -vIn <new directory>zeigen origin C:/old/directory.
kvu787

1
Ich stimme @ kvu787 zu, das klingt nicht nach dem, wonach gefragt wird, und wird wahrscheinlich Unmengen von Problemen verursachen.
Alkanen

@ kvu787 @alkanen, Hilft es, was ein Benutzer vorgeschlagen hat: git remote rm origin- Ihr altes Verzeichnis als Ursprung Ihres neuen Vertreters zu entfernen und - cd .. and rm -rf <former directory>altes Verzeichnis zu löschen
PythoNic

@PythoNic, wenn das alte Repo eine Fernbedienung mit dem Namen "origin" hätte, dann nein, dies wäre nicht in Ordnung, da Ihr neues Repo diese Fernbedienung nicht mehr haben würde. Andernfalls wäre das in Ordnung, aber das Umbenennen des Ordners wäre einfacher.
kvu787

0

Ja, du kannst es ändern. Ihr Repo geht immer noch direkt zu Ihrem Git. Entfernen / bearbeiten Sie einfach nicht den Namen von .git fo

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.