Στόχος: Να κρατάτε τον τοπικό σας κώδικα συγχρονισμένο με το GitHub.
Το πρόβλημα:
Η λύση: Push (εσείς → GitHub) και Pull (GitHub → εσείς)
mkdir demo-github-sync && cd demo-github-sync
git init
echo "print('v1')" > app.py
echo "# Demo GitHub Sync" > README.md
git add . && git commit -m "Initial commit"
# Σύνδεση με το GitHub (αντικαταστήστε με το αποθετήριό σας)
git remote add origin https://github.com/ton-username/demo-repo.git
# Πρώτο push
git push -u origin mainΑυτό είναι όλο! Ο κώδικάς σας είναι στο GitHub.
Τυπικό σενάριο:
# Τροποποιείτε τοπικά
echo "print('v2 updated')" > app.py
git add . && git commit -m "Update to v2"
# Αποστολή στο GitHub
git push origin main# Ανάκτηση των αλλαγών της ομάδας
git pull origin main
# Ή σε 2 βήματα:
git fetch origin # Λήψη χωρίς συγχώνευση
git merge origin/main # Συγχώνευση στη συνέχεια# Πρωί: ανάκτηση της εργασίας της ομάδας
git pull
# Ημέρα: αναπτύσσετε
echo "print('new feature')" >> app.py
git add . && git commit -m "Add feature"
# Βράδυ: αποστολή της εργασίας σας
git pushΣύγκρουση = εσείς και ένας συνάδελφος τροποποιείτε την ίδια γραμμή.
# Ο συνάδελφός σας τροποποίησε το app.py στο GitHub
# Εσείς επίσης τοπικά
echo "print('my version')" > app.py
git add . && git commit -m "My changes"
git pull # ΣΥΓΚΡΟΥΣΗ!# Το Git σας δείχνει τη σύγκρουση στο app.py:
# <<<<<<< HEAD
# print('my version')
# =======
# print('colleague version')
# >>>>>>> abc123
# Επεξεργαστείτε το αρχείο για να κρατήσετε ό,τι θέλετε:
echo "print('merged version')" > app.py
# Ολοκλήρωση της επίλυσης:
git add app.py
git commit -m "Resolve conflict"
git pushΗ σύγκρουση επιλύθηκε! Η ομάδα ανακτά τη συγχωνευμένη έκδοσή σας.
| Εντολή | Ενέργεια |
|---|---|
git clone <url> | Αντιγραφή αποθετηρίου GitHub |
git remote add origin <url> | Σύνδεση με το GitHub |
git push -u origin main | Πρώτο push (με παρακολούθηση) |
git push | Αποστολή των commits σας |
git pull | Ανάκτηση + συγχώνευση |
git fetch | Ανάκτηση χωρίς συγχώνευση |
git status | Προβολή κατάστασης συγχρονισμού |
git pull (ανάκτηση)git add + git commitgit push (κοινοποίηση)Συγχρονισμός GitHub = η αναπνοή του προγραμματιστή: pull → κώδικας → push!