Περισσότερα
Πώς να αλλάξετε το URI (URL) για ένα απομακρυσμένο αποθετήριο Git;
Έχω ένα repo (origin) σε ένα κλειδί USB που έχω κλωνοποιήσει στο σκληρό μου δίσκο (τοπικά). Μετακίνησα το "origin" σε ένα NAS και δοκίμασα με επιτυχία την κλωνοποίησή του από εδώ.
Θα ήθελα να μάθω αν μπορώ να αλλάξω το URI του "origin" στις ρυθμίσεις του "local" έτσι ώστε να αντλεί τώρα από το NAS και όχι από το κλειδί USB.
Προς το παρόν, μπορώ να δω δύο λύσεις:
-
και να τα αντιγράψω ξανά στο NAS (συνεπάγεται πολλή δουλειά λόγω των νέων commits στο nas-origin),
-
να προσθέσω ένα νέο απομακρυσμένο στο "local" και να διαγράψω το παλιό (φοβάμαι ότι θα χαλάσω το ιστορικό μου).
3484
3
Μπορείτε να
(δείτε
git help remote
) ή μπορείτε απλά να επεξεργαστείτε το.git/config
και να αλλάξετε τις διευθύνσεις URL εκεί. Δεν κινδυνεύετε να χάσετε το ιστορικό σας, εκτός αν κάνετε κάτι πολύ ανόητο (και αν ανησυχείτε, απλά κάντε ένα αντίγραφο του repo σας, αφού το repo σας είναι το ιστορικό σας).Αλλαγή μιας απομακρυσμένης διεύθυνσης URL
Αλλαγή κεντρικού υπολογιστή για έναν διακομιστή προέλευσης Git
από: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
Ελπίζω ότι αυτό δεν είναι κάτι που πρέπει να κάνετε. Ο διακομιστής που χρησιμοποιούσα για να συνεργάζομαι σε μερικά έργα git είχε λήξει το όνομα τομέα. Αυτό σήμαινε ότι έπρεπε να βρω έναν τρόπο να μεταφέρω τα τοπικά αποθετήρια για να ξαναβρεθώ σε συγχρονισμό.
Ενημέρωση: Ευχαριστώ τον @mawolf για την επισήμανση ότι υπάρχει ένας εύκολος τρόπος με τις πρόσφατες εκδόσεις του git (post Feb, 2010):
Δείτε τη σελίδα man για λεπτομέρειες.
Αν χρησιμοποιείτε μια παλαιότερη έκδοση, τότε δοκιμάστε αυτό:
Ως προειδοποίηση, αυτό λειτουργεί μόνο εφόσον πρόκειται για τον ίδιο διακομιστή, απλά με διαφορετικά ονόματα.
Υποθέτοντας ότι το νέο hostname είναι
newhost.com
, και το παλιό ήτανoldhost.com
, η αλλαγή είναι αρκετά απλή.Επεξεργαστείτε το αρχείο
.git/config
στον κατάλογο εργασίας σας. Θα πρέπει να δείτε κάτι σαν:Αλλάξτε το
oldhost.com
σεnewhost.com
, αποθηκεύστε το αρχείο και τελειώσατε.Από τις περιορισμένες δοκιμές μου (
git pull origin; git push origin; gitx
) όλα φαίνονται εντάξει. Και ναι, ξέρω ότι είναι κακή συμπεριφορά να πειράζετε τα εσωτερικά του git.