Πώς μπορείτε να δημιουργήσετε ένα απομακρυσμένο υποκατάστημα Git;

Δημιούργησα έναν τοπικό κλάδο τον οποίο θέλω να 'σπρώξω' προς τα πάνω. Υπάρχει μια παρόμοια ερώτηση εδώ στο Stack Overflow σχετικά με το πώς να παρακολουθήσετε έναν πρόσφατα δημιουργημένο απομακρυσμένο κλάδο.

Ωστόσο, η ροή εργασίας μου είναι ελαφρώς διαφορετική. Πρώτα θέλω να δημιουργήσω ένα τοπικό υποκατάστημα και θα το προωθήσω προς τα πάνω μόνο όταν'είμαι ικανοποιημένος και θέλω να μοιραστώ το υποκατάστημά μου.

  • Πώς θα το κάνω αυτό; (οι αναζητήσεις μου στο google δεν φαίνεται να έβγαλαν τίποτα).
  • Πώς θα έλεγα στους συναδέλφους μου να το τραβήξουν από το upstream αποθετήριο;

ΠΡΟΗΓΗΣΗ Με το Git 2.0 υπάρχει μια απλούστερη απάντηση Έχω γράψει παρακάτω: https://stackoverflow.com/a/27185855/109305

Πρώτον, δημιουργείτε τοπικά το υποκατάστημά σας:

git checkout -b  # Create a new branch and check it out

Ο απομακρυσμένος κλάδος δημιουργείται αυτόματα όταν τον προωθήσετε στον απομακρυσμένο διακομιστή. Έτσι, όταν αισθάνεστε έτοιμοι για αυτό, μπορείτε απλά να κάνετε:

git push   

Όπου `είναι συνήθωςorigin`, το όνομα που δίνει το git στο remote από το οποίο κλωνοποιήσατε. Οι συνάδελφοί σας τότε απλά θα τραβήξουν αυτόν τον κλάδο και θα δημιουργηθεί αυτόματα τοπικά.

Σημειώστε ωστόσο ότι τυπικά, η μορφή είναι:

git push  :

Αλλά όταν παραλείπετε ένα, υποθέτει ότι και τα δύο ονόματα κλάδων είναι τα ίδια. Έχοντας πει αυτό, ως μια λέξη προσοχής, μην κάνετε το κρίσιμο λάθος να προσδιορίσετε μόνο το : (με την άνω και κάτω τελεία), αλλιώς ο απομακρυσμένος κλάδος θα διαγραφεί!

Για να ξέρει ένα επόμενο git pull τι πρέπει να κάνει, ίσως αντί αυτού να θέλετε να χρησιμοποιήσετε:

git push --set-upstream   

Όπως περιγράφεται παρακάτω, η επιλογή --set-upstream δημιουργεί ένα upstream branch:

Για κάθε κλάδο που είναι ενημερωμένος ή που προωθήθηκε επιτυχώς, προσθέτει upstream (tracking) αναφορά, που χρησιμοποιείται από το git-pull(1) χωρίς επιχειρήματα και άλλα εντολές.

Σχόλια (29)

Πρώτα, πρέπει να δημιουργήσετε τον κλάδο σας τοπικά

git checkout -b your_branch

Μετά από αυτό, μπορείτε να εργαστείτε τοπικά στον κλάδο σας, και όταν είστε έτοιμοι να μοιραστείτε τον κλάδο, σπρώξτε τον. Η επόμενη εντολή σπρώχνει τον κλάδο στο απομακρυσμένο αποθετήριο origin και τον παρακολουθεί

git push -u origin your_branch

Οι συνάδελφοι μπορούν να φτάσουν στον κλάδο σας, κάνοντας:

git fetch
git checkout origin/your_branch

Μπορείτε να συνεχίσετε να εργάζεστε στον κλάδο και να κάνετε pushing όποτε θέλετε χωρίς να δίνετε επιχειρήματα στο git push (το git push χωρίς επιχειρήματα θα σπρώξει το master στο απομακρυσμένο master, το your_branch local στο απομακρυσμένο your_branch, κλπ...)

git push

Οι συνεργάτες μπορούν να pushάρουν στον κλάδο σας κάνοντας commits και στη συνέχεια να pushάρουν ρητά

... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

Ή να παρακολουθούν τον κλάδο για να αποφύγουν τα επιχειρήματα του git push

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push
Σχόλια (0)

Όπως αναφέρεται στις προηγούμενες απαντήσεις,

git push  :

είναι αρκετό για την προώθηση ενός τοπικού κλάδου.

Οι συνάδελφοί σας, μπορούν να τραβήξουν όλους τους απομακρυσμένους κλάδους (συμπεριλαμβανομένων των νέων) με αυτή την εντολή:

git remote update

Στη συνέχεια, για να κάνετε αλλαγές στον κλάδο, με τη συνηθισμένη ροή:

git checkout -b  /
Σχόλια (0)