Απομακρυσμένος κλάδος = ένας κλάδος που υπάρχει στον απομακρυσμένο διακομιστή (GitHub, GitLab κ.λπ.).
Κεντρική έννοια:
Αναλογία: Είναι σαν να έχετε ένα τοπικό αντίγραφο του βιβλίου της βιβλιοθήκης.
mkdir demo-remote && cd demo-remote
git init && echo "print('main')" > app.py
git add . && git commit -m "Initial commit"
# Προσθήκη remote (προσομοίωση GitHub)
git remote add origin https://github.com/user/repo.git
# Δημιουργία κλάδου που παρακολουθεί έναν απομακρυσμένο
git checkout -b feature-login
echo "print('login')" > login.py
git add . && git commit -m "Add login"
# Push ΚΑΙ δημιουργία παρακολούθησης
git push -u origin feature-login
# Επαλήθευση της παρακολούθησης
git branch -vv # Προβολή ποιοι κλάδοι παρακολουθούν τιΑποτέλεσμα: Ο τοπικός σας κλάδος feature-login ακολουθεί το origin/feature-login.
Ανάκτηση ενημερώσεων χωρίς συγχώνευση:
git fetch origin # Λήψη των αλλαγών
git status # Προβολή αν ο κλάδος σας είναι πίσω
git log --oneline origin/main # Προβολή των νέων απομακρυσμένων commitsΑνάκτηση ΚΑΙ συγχώνευση:
git pull origin main # = git fetch + git merge
# Ή για τον παρακολουθούμενο κλάδο σας:
git pull # ΑπλούστεροΑποστολή των αλλαγών σας:
git push # Αν ο κλάδος παρακολουθείται
git push origin feature-login # ΡητάΠροβολή όλων των κλάδων (τοπικών + απομακρυσμένων):
git branch -a # Όλοι οι κλάδοι
git branch -r # Μόνο οι απομακρυσμένοι
git remote show origin # Λεπτομέρειες του remoteΔιαγραφή απομακρυσμένου κλάδου:
git push origin --delete feature-old # Διαγραφή στον διακομιστή
git branch -d feature-old # Διαγραφή τοπικά
git fetch --prune # Καθαρισμός των αναφορώνΔημιουργία τοπικού κλάδου από απομακρυσμένο:
git checkout -b local-name origin/remote-name
# Ή πιο απλά:
git checkout remote-name # Δημιουργεί αυτόματα την παρακολούθηση| Εντολή | Ενέργεια |
|---|---|
git fetch | Ανάκτηση ενημερώσεων χωρίς συγχώνευση |
git pull | Ανάκτηση + συγχώνευση |
git push -u origin <branch> | Αποστολή + δημιουργία παρακολούθησης |
git branch -vv | Προβολή κατάστασης παρακολούθησης |
git remote show origin | Λεπτομερείς πληροφορίες του remote |
git push origin --delete <branch> | Διαγραφή απομακρυσμένου κλάδου |
git fetch --prune | Καθαρισμός νεκρών αναφορών |
Απομακρυσμένοι κλάδοι = συντονισμός ομάδας. Κατακτήστε το = ρευστή εργασία!