Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

  • Moderators
Δημοσ.

Μπορείς να κάνεις merge το master μέσα στο dev branch σου (http://stackoverflow.com/questions/14168677/merge-development-branch-with-master). Στα λέω λακωνικά γιατί ούτε εγώ έχω μεγάλη εξοικείωση, πιο πολύ ξέρω τι μπορεί/πρέπει να γίνει παρά το πώς θα γίνει :P

Δημοσ.

Μπορείς ΠΡΩΤΑ να κάνεις merge το master μέσα στο dev branch σου (http://stackoverflow.com/questions/14168677/merge-development-branch-with-master). Στα λέω λακωνικά γιατί ούτε εγώ έχω μεγάλη εξοικείωση, πιο πολύ ξέρω τι μπορεί/πρέπει να γίνει παρά το πώς θα γίνει :P

...ώστε οποιοδήποτε conflict επιλύσεις να είναι στο dev. Αν είσαι σίγουρος για την ορθότητα του αποτελεσματος

στο dev, τότε πας στο master και από εκεί κάνεις το τελικό merge. Έτσι δεν πειράζεις τίποτα από το master και

είναι full clean.

 

Αν δε σε πειράζει κάτι τέτοιο, τότε πας από master και κάνεις merge το dev κατευθείαν.

Δημοσ.

Πως "χωνουμε" ενα branch στο master?

git checkout master
git merge mybranch

Έτσι δεν πειράζεις τίποτα από το master και είναι full clean.

 

Αν δε σε πειράζει κάτι τέτοιο, τότε πας από master και κάνεις merge το dev κατευθείαν.

 

Ο,τι και να πειράξεις μπορείς πάντα να κάνεις rollback, μέχρι τη στιγμή που θα κάνεις push κάπου τα πάντα είναι δωρεάν. Φυσικά αν θέλεις μπορείς να το κάνεις και αυτό, αλλά η επιλογή του "dev" σαν πρώτου merge target δεν είναι και η καλύτερη γιατί αν όλα πάνε καλά θα σου μείνει το merge να κάνει το commit history να φαίνεται πιο περίεργο. Καλύτερα νομίζω branching αβέρτα:

git checkout dev
git checkout -b merge-target
git merge master

κλπ

  • Like 1
Δημοσ.

Στη παρούσα περίπτωση που μιλάμε για κάποιο απλό repo, τότε μπορείς φυσικά να κάνεις merge το master στο development όπως προτείνουν στο SO, αλλά γενικά δεν μου αρέσει. Για να δοθεί μια δόκιμη απάντηση θα πρέπει να είναι γνωστό τι πραγματεύεται το master και τι αυτό που θα "χώσεις" στο master. Δεν μπορεί σε όλες τις περιπτώσεις να γίνει merge το master στο Χ branch.

 

Για να μη πάω το νήμα αλλού ας απαντήσω απλά την ερώτηση.

 

% git checkout master
% git merge other_branch
Μεταφερόμαστε πρώτα στο master και κάνουμε έπειτα merge το branch που θέλουμε. Αν πάει κάτι στραβά, μπορούμε να τρέξουμε "git merge --abort" αν δεν έχει ολοκληρωθεί το merge ή να χρησιμοποιήσουμε το reflog για να αναιρέσουμε το merge.

 

Μία λύση για την περίπτωση που θέλουμε να δοκιμάσουμε αν θα υπάρξουν conflicts που παίζει πάντα είναι το scratch branch.

 

% git checkout master
% git checkout -b scratch
% git merge other_branch
Επίλυση conflicts, έλεγχος του αποτελέσματος
% git checkout master
% git br -D scratch
Δημιουργούμε ένα branch το οποίο είναι ολόιδιο με το master και κάνουμε εκεί merge το branch μας. Στο τέλος το σβήνουμε και όλα οκ.
  • Like 1
Δημοσ.

Δεν ξερω τι λετε, εγω πηγα στο github

πηγα στο branch πατησα pull request

πηγα στο master πατησα κατι

 

tHo21QC.png

B)

Ωραία. Αυτό που περιγράψαμε έκανες απλά το έκανες από το γραφικό του Github. Έκανες στο branch την pull request και την έκανες accept από το master.

 

% git log --oneline --graph --all
* b3ded67 removing defaults (chart area)
* 0f40f58 RSI Added +some fix
*   daa6b0d Merge pull request #1 from AnonymoPapaki/TestNewLogic
|\  
| | * 0463319 jhgjhgj
| |/  
| * eb59116 data buffer edited, datamanipulator added
| * 2b0f0c9 lifting
| * f693ae8 axis fixed
| * 777629b moving buffer chartarea -> chart
| * be4b174 FocusLast Added
| * 3b600b8 new logic
|/  
* 9bcd65b syncx axis across chart area
* 0b31ad0 Series auto focus
* c8c2fd1 On resize, change only top chartarea
Αυτή είναι η κατάσταση του repo σου τώρα. Έκανες merge την pull request και έτσι το περιεχόμενο των commits 3b600b8 μέχρι eb59116 υπάρχει πλέον στο master. Έπειτα έγραψες δύο ακόμη commits στο master και επίσης έγραψες ένα commit στο branch σου (το jhgjhgj) αφότου έκανες την pull request. Αυτό δεν υπάρχει στο master.
Δημοσ.

Το jhgkgkjg το εκανα επειδή δεν μπορουσα να πάω sto master απο το visual studio.

 

Btw είναι safe να κάνω delete το branch? (Όχι το master, το άλλο)

Δημοσ.

Το jhgkgkjg το εκανα επειδή δεν μπορουσα να πάω sto master απο το visual studio.

 

Btw είναι safe να κάνω delete το branch? (Όχι το master, το άλλο)

Λογικά θα σου εμφανίσει μήνυμα ότι το branch δεν είναι merged (λόγω του ξέμπαρκου jhg..) αλλά εφόσον δεν σε ενδιαφέρει εκείνο το commit, μπορείς να το σβήσεις άφοβα.

  • 2 εβδομάδες αργότερα...
Δημοσ.

...

Μία λύση για την περίπτωση που θέλουμε να δοκιμάσουμε αν θα υπάρξουν conflicts που παίζει πάντα είναι το scratch branch.

 

% git checkout master
% git checkout -b scratch
% git merge other_branch
Επίλυση conflicts, έλεγχος του αποτελέσματος
% git checkout master
% git br -D scratch
Δημιουργούμε ένα branch το οποίο είναι ολόιδιο με το master και κάνουμε εκεί merge το branch μας. Στο τέλος το σβήνουμε και όλα οκ.

 

 

Μήπως ξέχασες στο τέλος, πριν τη διαγραφή του scratch, το merge με το master;

Δημοσ.

Μήπως ξέχασες στο τέλος, πριν τη διαγραφή του scratch, το merge με το master;

Αυτό το κομμάτι που έδειξα ήτανε πώς να κάνεις ένα προσωρινό branch ώστε να ελέγξεις το αποτέλεσμα για όποιον φοβάται να το κάνει κατευθείαν στο master. Αν σου αρέσει το αποτέλεσμα εννοείται πως θα κάνεις merge στο master.

  • Like 1
Δημοσ.

Αυτό το κομμάτι που έδειξα ήτανε πώς να κάνεις ένα προσωρινό branch ώστε να ελέγξεις το αποτέλεσμα για όποιον φοβάται να το κάνει κατευθείαν στο master. Αν σου αρέσει το αποτέλεσμα εννοείται πως θα κάνεις merge στο master.

Πάντως καλή φάση αυτό το κολπάκι. Είχε τύχει σε project που είχαμε

με άλλα 4 άτομα να γίνεται Ο χαμός από τα conflicts. Και άντε να κά-

νουμε με το σταυρό στο χέρι merging στο master. Το 50% των περιπ-

τώσεων κατέληγε σε αποτυχημένες προσπάθειες. Αρχίζω και το υιοθε-

τώ και νιώθω σα να έχει φύγει ένα βάρος από πάνω μου.

Δημοσ.

Το 50% των περιπτώσεων κατέληγε σε αποτυχημένες προσπάθειες.

Για περιπτωσεις σαν και αυτη θελει καλα tests.

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...