Ich bin ziemlich neu in der Verwendung von Git und habe mich gefragt, ob es in Ordnung ist, ein Git-Repository mit gängigen UNIX-Befehlen (wie cp
oder tar
/ untag
) zu kopieren , anstatt durch git clone
.
Ich bin in der Situation, in der ich eine Produktionsumgebung (Python Virtual) habe, die Code in Git darin ausgecheckt hat. Ich frage mich, ob es aus git-Sicht eine schlechte Idee ist, die gesamte Umgebung mit einem tar
oder etwas zu kopieren . Dieser Ansatz wäre praktisch, um eine schnelle Kopie einer Codebasis / Umgebung zu erstellen.
Ich befürchte, dass git clone der Arbeitskopie möglicherweise eine eindeutige ID zuordnet, die zu Konflikten führen kann, wenn zwei Arbeitskopien vorhanden sind, von denen eine vom anderen Dateisystem kopiert wurde.
Antworten:
Es ist vollkommen in Ordnung.
git
speichert die gesamte Historie, Commits usw. vor Ort - dies ist eine grundlegende Eigenschaft eines DCVS.Technisch gesehen
git
funktioniert dies problemlos mit kopierten Repositorys, die überall laufen, da der springende Punkt eines DCVS darin besteht, dass es nicht wissen muss, was außerhalb eines bestimmten Repositorys vor sich geht , und das auch nicht, wenn Sie es nicht mitteilen .Das gleiche Prinzip gilt hier.
quelle
git remote remove origin
, wodurch Git daran gehindert wird, das übergeordnete Repository als Upstream zu verwenden.Sie sollten in der Lage sein, das gesamte Arbeitsverzeichnis in ein anderes Verzeichnis auf Ihrem System zu kopieren und es bei Verwendung von Git, Hg oder SVN weiterhin wie gewohnt zu verwenden. Ich kann keine anderen SCMs kommentieren.
quelle
Dies ist ein eher ungewöhnlicher Anwendungsfall, aber ...
Ich habe gesehen, wie das
repo
Dienstprogramm symbolische Links im.git
Verzeichnis erstellt hat. In diesem Fall sollten Sie beim Kopieren sicherstellen, dass symbolische Links dereferenziert werden. Z.B:quelle
Es ist in Ordnung, aber wenn Sie Ihr Repo mit jemand anderem teilen möchten, beachten Sie bitte Folgendes :
config
Datei enthält möglicherweise Fernbedienungen, die die andere Person möglicherweise nicht interessiert.logs
Ordner enthält Verweise, die Sie möglicherweise nicht freigeben möchten. Git ist großartig darin, Sie die fiesen Dinge auf Ihrem Computer erledigen zu lassen, bis Sie mit dem Endergebnis zufrieden sind, und es dann auf die Fernbedienung zu schieben, um es (gelegentlich) zu teilen. Einiges von dieser fiesen Geschichte könnte in Ihrem Reflog sein, deshalb ist es besser, es IMHO nicht zu teilen.info/exclude
Datei ignoriert möglicherweise einige Dateien, die nur von Ihnen ignoriert werden sollen.quelle