Περισσότερα
Πώς μπορώ να ενημερώσω ένα αποθετήριο με διακλάδωση στο GitHub;
Πρόσφατα διακλάδισα ένα έργο και εφάρμοσα αρκετές διορθώσεις. Στη συνέχεια, δημιούργησα ένα pull request, το οποίο στη συνέχεια έγινε αποδεκτό.
Λίγες μέρες αργότερα έγινε μια άλλη αλλαγή από έναν άλλο συνεργάτη. Έτσι, η διακλάδωση μου δεν περιέχει αυτή την αλλαγή.
Πώς μπορώ να βάλω αυτή την αλλαγή στο fork μου; Πρέπει να διαγράψω και να δημιουργήσω εκ νέου το fork μου όταν έχω περαιτέρω αλλαγές να συνεισφέρω; Ή υπάρχει κάποιο κουμπί ενημέρωσης;
3364
3
Στον τοπικό σας κλώνο του διχαλωμένου αποθετηρίου σας, μπορείτε να προσθέσετε το αρχικό αποθετήριο GitHub ως "απομακρυσμένο" (Τα "απομακρυσμένα" είναι σαν ψευδώνυμα για τις διευθύνσεις URL των αποθετηρίων - το
origin
είναι ένα, για παράδειγμα.) Στη συνέχεια, μπορείτε να λάβετε όλους τους κλάδους από αυτό το αποθετήριο upstream και να επανατοποθετήσετε την εργασία σας για να συνεχίσετε να εργάζεστε στην έκδοση upstream. Από την άποψη των εντολών αυτό μπορεί να μοιάζει ως εξής:Αν δεν θέλετε να ξαναγράψετε το ιστορικό του master branch σας, (για παράδειγμα επειδή άλλοι άνθρωποι μπορεί να το έχουν κλωνοποιήσει) τότε θα πρέπει να αντικαταστήσετε την τελευταία εντολή με
git merge upstream/master
. Ωστόσο, για να κάνετε περαιτέρω pull requests που να είναι όσο το δυνατόν πιο καθαρά, είναι πιθανώς καλύτερο να κάνετε rebase.Αν έχετε rebased το branch σας στο
upstream/master
ίσως χρειαστεί να εξαναγκάσετε το push προκειμένου να το προωθήσετε στο δικό σας forked αποθετήριο στο GitHub. Θα το κάνετε αυτό με: "Η διαδικασία της εκκίνησης του νέου πακέτου είναι η εξής:":Χρειάζεται να χρησιμοποιήσετε το
-f
μόνο την πρώτη φορά αφού έχετε κάνει rebased.Από τον Μάιο του 2014, είναι δυνατή η ενημέρωση ενός fork απευθείας από το GitHub. Αυτό εξακολουθεί να λειτουργεί από τον Σεπτέμβριο του 2017, ΑΛΛΑ θα οδηγήσει σε ένα βρώμικο ιστορικό δεσμεύσεων.
Update from original
).Τώρα έχετε τρεις επιλογές, αλλά η καθεμία θα οδηγήσει σε ένα λιγότερο καθαρό ιστορικό δεσμεύσεων.
This branch is X commits ahead, Y commits behind
.Έτσι, ναι, μπορείτε να κρατάτε το repo σας ενημερωμένο με το upstream του χρησιμοποιώντας το web UI του GitHub, αλλά με αυτόν τον τρόπο θα αμαυρώσετε το ιστορικό των commit σας. Χρησιμοποιήστε τη γραμμή εντολών - είναι εύκολο.
Εδώ είναι το επίσημο έγγραφο του GitHub για τον Συγχρονισμό μιας διακλάδωσης:
$ git branch -va
List all local and remote-tracking branches