warlock9_0 Δημοσ. 22 Σεπτεμβρίου 2013 Δημοσ. 22 Σεπτεμβρίου 2013 ρε συ ημιθεε να σε ρωτησω γιατι μπλεκουν τα πραγματα με παραπανω απο ενα remotes το fetch τα φερνει ολα? εστω στο fork εχω το δικο μου το remote και το upstream στο δικο μου κανω ενα branch και δουλευω εκει μετα κανω fetch, checkout στο master, merge με το upstream/master και rebase το δικο μου
imitheos Δημοσ. 22 Σεπτεμβρίου 2013 Δημοσ. 22 Σεπτεμβρίου 2013 ρε συ ημιθεε να σε ρωτησω γιατι μπλεκουν τα πραγματα με παραπανω απο ενα remotes το fetch τα φερνει ολα? Αν θυμάμαι καλά, οι εντολές fetch, pull, push όταν δεν έχουν όρισμα για το remote, τότε δουλεύουν με το origin. Παλαιότερα, ο μόνος τρόπος να φέρεις όλα τα remotes ήταν με την εντολή git remote update. Εδώ και κάμποσο καιρό όμως υπάρχει όμως η παράμετρος --all που κάνει την fetch να τα φέρνει όλα. εστω στο fork εχω το δικο μου το remote και το upstream στο δικο μου κανω ενα branch και δουλευω εκει μετα κανω fetch, checkout στο master, merge με το upstream/master και rebase το δικο μου Σε αυτή τη περίπτωση πάλι ένα remote δεν έχεις ουσιαστικά για fetch (το upstream) ? Το fork σου μόνο για push δεν θα χρησιμοποιείται ?
warlock9_0 Δημοσ. 22 Σεπτεμβρίου 2013 Δημοσ. 22 Σεπτεμβρίου 2013 στην ουσια ναι τα εχω μπλεξει με το pull και τα remote tracking branches που κανει αυτοματα και εχω χασει τη μπαλα μολις παω στο pc θα στειλω να σου δειξω τι εννοω
pmav99 Δημοσ. 22 Σεπτεμβρίου 2013 Δημοσ. 22 Σεπτεμβρίου 2013 @warlock τσέκαρε το gitflow μήπως σε βολέψει πιο πολύ
defacer Δημοσ. 23 Σεπτεμβρίου 2013 Δημοσ. 23 Σεπτεμβρίου 2013 Επειδή αναφέρθηκε το git flow, ΙΜΟ εδώ είναι η τέλεια εξήγηση του πώς και γιατί. Για μια αναφορά σε εναλλακτικά μοντέλα (αλλά και στο git flow) υπάρχει αυτό το κείμενο της Atlassian. Με την ευκαιρία που είπα Atlassian: Αν για κάποιο λόγο (που πραγματικά δεν τον βλέπω) χαλιέται κάποιος που δεν είναι private το GitHub εκτός αν πληρώσεις, υπάρχει και το BitBucket που είναι. Αν θέλετε δωρεάν γραφικό client για git/hg/svn σε Windows ή Mac, πάρε κόσμε SourceTree (είναι πραγματικά πολύ καλό). No Linux version δυστυχώς. Για το dropbox που αναφέρθηκε νωρίτερα, φαντάζομαι ότι θα δουλέψει μια χαρά και απλά τοπικά git σε directory που γίνεται sync στο dropbox, αλλά αυτή η λύση α) προσφέρει μόνο backup και όχι συνεργασία και β) δεν έχει κανένα πλεονέκτημα πέραν του ότι γίνεται χωρίς να μάθεις πώς δουλεύει το push/pull.
warlock9_0 Δημοσ. 23 Σεπτεμβρίου 2013 Δημοσ. 23 Σεπτεμβρίου 2013 από το link του defacer το πρώτο όταν κάνεις merge το develop στο master σου παίρνει και όλα τα προηγούμενα commits έτσι? στο σχήμα είναι έτσι για ευκολία σωστά?
imitheos Δημοσ. 23 Σεπτεμβρίου 2013 Δημοσ. 23 Σεπτεμβρίου 2013 από το link του defacer το πρώτο όταν κάνεις merge το develop στο master σου παίρνει και όλα τα προηγούμενα commits έτσι? στο σχήμα είναι έτσι για ευκολία σωστά? Μα και στο σχήμα αυτό δεν δείχνει ? Το merge ξεκινάει από την "merge base" (σε απλές περιπτώσεις από το προηγούμενο merge) και ενσωματώνει όλα τα νέα commits οπότε φυσικά περιέχονται και τα προηγούμενα. Το πρώτο μπλε κυκλάκι είναι η εκκίνηση. Σε αυτό το σημείο δημιουργείται το branch develop και έχει ακριβώς τα ίδια περιεχόμενα με το master. Αρχίζει η δουλειά και δημιουργούμε 4 commits (κίτρινα κυκλάκια) στο develop. Το επόμενο μπλε κυκλάκι είναι το πρώτο merge και ενσωματώνει στο master ό,τι δεν υπάρχει ήδη (ξεκινώντας από την κοινή αρχή τους) δηλαδή τα 4 πρώτα κίτρινα κυκλάκια. Το επόμενο μπλε κυκλάκι είναι το επόμενο merge. Αυτό ψάχνει και βλέπει ποια είναι η βάση του master και του develop και βλέπει ότι είναι το 4ο κίτρινο κυκλάκι. Οπότε θα ενσωματώσει 2 κίτρινα κυκλάκια στο master. Τα αρχικά 4 κίτρινα κυκλάκια υπάρχουν ήδη στο master λόγω του προηγούμενου merge.
warlock9_0 Δημοσ. 23 Σεπτεμβρίου 2013 Δημοσ. 23 Σεπτεμβρίου 2013 πάλι έχεις δίκιο, το σκεφτόμουνα λάθος
imitheos Δημοσ. 23 Σεπτεμβρίου 2013 Δημοσ. 23 Σεπτεμβρίου 2013 Αν σε μπερδεύει η gitflow, υπάρχει μια παραπλήσια μέθοδος που χρησιμοποιείται από πολύ κόσμο (συμπεριλαμβανομένου και του github) και είναι λίγο πιο εύκολη. Η ιδέα ότι το master πρέπει να είναι πάντα stable και ποτέ να μην αποτυγχάνει το build παραμένει αλλά παρακάμπτεται το develop και δουλεύει με το master. Δημιουργείς features branches για κάθε δουλειά που θέλεις και όταν αυτά ωριμάσουν και πάρουν οκ από άλλους devs, τότε τα κάνεις merge στο master. Ακριβώς το ίδιο σκεπτικό και πλεονεκτήματα με το gitflow χωρίς απλά το branch develop (για μικρά project με ομάδες < 20 ατόμων δεν προσφέρει και πολλά το ξεχωριστό branch develop).
warlock9_0 Δημοσ. 23 Σεπτεμβρίου 2013 Δημοσ. 23 Σεπτεμβρίου 2013 δεν με μπερδεύει, απλά είχα κολλήσει με την εικόνα και το σκεφτόμουνα λάθος, σαν να μην κρατάει history το master
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα