Έχω ένα έργο με πολλαπλούς κλάδους. Τα προωθούσα στο GitHub και τώρα που κάποιος άλλος εργάζεται στο έργο πρέπει να τραβήξω τα κλαδιά του από το GitHub. Λειτουργεί μια χαρά στο master. Αλλά ας πούμε ότι κάποιος δημιούργησε έναν κλάδο xyz
. Πώς μπορώ να τραβήξω τον κλάδο xyz
από το GitHub και να τον συγχωνεύσω στον κλάδο xyz
στο δικό μου localhost
;
Στην πραγματικότητα έχω την απάντησή μου εδώ: https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git
Αλλά λαμβάνω ένα σφάλμα "! [rejected]" και κάτι για "non fast forward".
Κάποια πρόταση;
Απλά παρακολουθείτε ρητά τους απομακρυσμένους κλάδους σας και ένα απλό git pull
θα κάνει ακριβώς αυτό που θέλετε:
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
Το τελευταίο είναι μια τοπική λειτουργία.
Ή ακόμα περισσότερο ταιριάζει με την τεκμηρίωση του GitHub σχετικά με το forking:
git branch -f new_local_branch_name upstream/remote_branch_name
Μπορείτε να τραβήξετε ένα κλαδί σε ένα κλαδί με τις ακόλουθες εντολές.
git pull {repo} {remotebranchname}:{localbranchname}
git pull origin xyz:xyz
Όταν βρίσκεστε στο master branch μπορείτε επίσης να κάνετε πρώτα checkout ένα branch όπως:
git checkout -b xyz
Αυτό δημιουργεί έναν νέο κλάδο, "xyz", από τον master και τον ελέγχει άμεσα.
Στη συνέχεια, κάνετε:
git pull origin xyz
Αυτό τραβάει το νέο κλάδο στον τοπικό σας κλάδο xyz
.
Δεν είμαι σίγουρος ότι καταλαβαίνω πλήρως το πρόβλημα, αλλά το τράβηγμα ενός υπάρχοντος κλάδου γίνεται ως εξής (τουλάχιστον λειτουργεί για μένα :)
git pull origin BRANCH
Αυτό προϋποθέτει ότι ο τοπικός σας κλάδος έχει δημιουργηθεί από το origin/BRANCH.