Skip to content

Latest commit

 

History

History
627 lines (495 loc) · 20.8 KB

git-cheat-sheet-el.md

File metadata and controls

627 lines (495 loc) · 20.8 KB

Git and Git Flow Cheat Sheet Awesome


Git


Άλλες διαθέσιμες γλώσσες:

  1. Αραβικά
  2. Κινέζικα
  3. Ινδικά
  4. Τουρκικά
  5. Ισπανικά

Το "σκονάκι" για το Git σας γλιτώνει από την εκμάθηση όλων των εντολών απ' έξω.

Είστε ελεύθεροι να συνεισφέρετε και να ενημερώσετε τα λάθη γραμματικής. Είστε επίσης ελεύθεροι να προσθέσετε το αρχείο στη γλώσσα σας.


Git Cheat Sheet Greek

Ευρετήριο


Ρύθμιση

Εμφάνιση τρέχουσας διαμόρφωσης:
$ git config --list
Εμφάνιση διαμόρφωσης αποθετηρίου:
$ git config --local --list
Εμφάνιση γενικών/καθολικών ρυθμίσεων:
$ git config --global --list
Εμφάνηση ρυθμίσεων συστήματος:
$ git config --system --list
Ορίστε ένα όνομα που είναι αναγνωρίσιμο για έπαινο (credit) όταν γίνει αναθεώρηση του ιστορικού:
$ git config --global user.name “[firstname lastname]”
Ορίστε μια διεύθυνση email που θα σχετίζεται με κάθε δείκτη στο ιστορικό:
$ git config --global user.email “[valid-email]”
Ρύθμιση αυτόματης γραμμής εντολών για τον χρωματισμό του Git για εύκολη αναθεώρηση:
$ git config --global color.ui auto
Ορίστε μια εφαρμογή για επεξεργασία των commit
$ git config --global core.editor vi

Αρχεία ρυθμίσεων

Αρχείο ρυθμίσεων για συγκεκριμένο αποθετήριο [--local]:
<repo>/.git/config
Αρχείο ρυθμίσεων για συγκεκριμένο χρήστη [--global]:
~/.gitconfig
Αρχείο ρυθμίσεων για όλο το σύστημα [--system]:
/etc/gitconfig

Δημιουργία

Αντιγραφή ενός υπάρχοντος αποθετηρίου:

Υπάρχουν δύο τρόποι:

Με SSH

$ git clone ssh://[email protected]/repo.git

Με HTTP

$ git clone http://domain.com/user/repo.git
Δημιουργία ενός νέου τοπικού αποθετηρίου:
$ git init

## Τοπικές αλλαγές
Εμφάνιση αλλαγών στον τρέχον φάκελο:
$ git status
Εμφάνιση αλλαγών σε αρχεία που παρακολουθούνται (tracked):
$ git diff
Πρόσθεσε όλες τις αλλαγές στο επόμενο commit:
$ git add .
Πρόσθεσε τις αλλαγές που έγιναν στο <file> στο επόμενο commit:
$ git add -p <file>
Κάνε commit όλες τις τοπικές αλλαγές στα αρχεία που παρακολουθούνται:
$ git commit -a
Κάνε commit προηγούμενες staged αλλαγές:
$ git commit
Κάνε commit με μήνυμα:
$ git commit -m 'message here'
Κάνε commit παρακάμπτοντας την staging περιοχή Commit skipping the staging area and adding message:
$ git commit -am 'message here'
Κάνε commit σε μια προηγούμενη ημέρα:
git commit --date="`date --date='n day ago'`" -am "Commit Message"
Άλλαξε το τελευταίο commit:

Μην τροποποιήσεις τα δημοσιευμένα commits!

$ git commit -a --amend
Άλλαξε την ημερομηνία του τελευταίου commit:
GIT_COMMITTER_DATE="date" git commit --amend
Άλλαξε την ημερομηνία του Συγγραφέα στο τελευταίο commit:
git commit --amend --date="date"
Μετακίνησε τις uncommitted αλλαγές από την τωρινή διακλάδωση σε μία άλλη:
git stash
git checkout branch2
git stash pop
Επανέφερε τις stashed αλλαγές πίσω στην τωρινή διακλάδωση:
git stash apply
Αφαίρεσε τη τελευταία σειρά από stashed αλλαγές:
git stash drop

Αναζήτηση

Αναζήτησε το κείμενο σε όλα τα αρχεία του φακέλου:
$ git grep "Hello"
Σε κάποια έκδοση:
$ git grep "Hello" v2.5

Ιστορία commit

Εμφάνισε όλα τα commits, ξεκινώντας από το πιο πρόσφατο (θα εμφανίσει το hash, πληροφορίες για τον συγγραφέα, ημερομηνία του commit και τίτλο του commit):
$ git log
Εμφάνισε όλα τα commits (θα εμφανίσει μόνο το commit hash και το μήνυμα του commit):
$ git log --oneline
Εμφάνισε όλα τα commits ενός συγκεκριμένου χρήστη:
$ git log --author="username"
Εμφάνισε τις αλλαγές σε βάθος χρόνου για ένα συγκεκριμένο αρχείο:
$ git log -p <file>
Εμφάνισε τα commits που υπάρχουν μόνο στην απομακρυσμένη διακλάδωση στην δεξιά πλευρά:
$ git log --oneline <origin/master>..<remote/master> --left-right
Ποιος, τι και πότε έκανε τις αλλαγές στο <file>:
$ git blame <file>
Εμφάνισε το αρχείο καταγραφής των αναφορών (Reference log):
$ git reflog show 
Διέγραψε το αρχείο καταγραφής των αναφορών (Reference log):
$ git reflog delete

Διακλαδώσεις και Ετικέτες

Εμφάνισε λίστα με όλες τις τοπικές διακλαδώσεις:
$ git branch
Εμφάνισε λίστα με όλες τις απομακρυσμένες διακλαδώσεις:
$ git branch -r
Κάνε εναλλαγή στη διακλάδωση HEAD:
$ git checkout <branch>
Δημιούργησε και κάνε εναλλαγή σε μια νέα διακλάδωση:
$ git checkout -b <branch>
Δημιούργησε μια νέα διακλάδωση βασιζόμενη στη τρέχουσα διακλάδωση:
$ git branch <new-branch>
Δημιούργησε μια νέα παρακολουθούμενη διακλάδωση βασιζόμενη σε μία απομακρυσμένη διακλάδωση:
$ git branch --track <new-branch> <remote-branch>
Διέγραψε μια τοπική διακλάδωση:
$ git branch -d <branch>
Εξανάγκασε τη διαγραφή μιας τοπικής διακλάδωσης:

Θα χάσετε όλες τις αλλαγές που δεν έχουν συγχωνευθεί!

$ git branch -D <branch>
Σημείωσε το τρέχων commit με μία ετικέτα:
$ git tag <tag-name>
Σημείωσε το τρέχων commit με μία ετικέτα που περιλαμβάνει ένα μήνυμα:
$ git tag -a <tag-name>

Ενημέρωση & Δημοσίευση

Εμφάνισε μια λίστα με όλα τα τωρινά ρυθμισμένα απομακρυσμένα αποθετήρια:
$ git remote -v
Εμφάνισε πληροφορίες για ένα απομακρυσμένο αποθετήριο:
$ git remote show <remote>
Πρόσθεσε ένα απομεκρυσμένο αποθετήριο, με όνομα <remote>:
$ git remote add <remote> <url>
Κατέβασε όλες τις αλλαγές από το <remote>, αλλά μην το ενσωματώσεις στο HEAD:
$ git fetch <remote>
Κατέβασε τις αλλαγές και απευθείας συγχώνευσε/ενσωμάτωσε στο HEAD:
$ git remote pull <remote> <url>
Κατέβασε όλες τις αλλαγές από το (απομακρυσμένο) HEAD στο τοπικό αποθετήριο:
$ git pull origin master
Κατέβασε όλες τις αλλαγές από το HEAD στο τοπικό αποθετήριο χωρίς συγχώνευση:
git pull --rebase <remote> <branch>
Δημοσίευσε τις τοπικές αλλαγές στο απομακρυσμένο αποθετήριο:
$ git push remote <remote> <branch>
Διέγραψε μια διακλάδωση από το απομακρυσμένο αποθετήριο:
$ git push <remote> :<branch> (από την έκδοση Git v1.5.0)
ή
git push <remote> --delete <branch> (από την έκδοση Git v1.7.0)
Δημοσίευσε τις ετικέτες:
$ git push --tags

Συγχώνευση & Αναπροσαρμογή

Συγχώνευσε τη διακλάδωση στο τρέχων HEAD:
$ git merge <branch>
Αναπροσάρμοσε το τρέχων HEAD στο <branch>:

ΜΗΝ αναπροσαρμόσετε δημοσιευσμένα commit!

$ git rebase <branch>
Ακύρωσε την αναπροσαρμογή:
$ git rebase --abort
Συνεχίστε την αναπροσαρμογή μετά την επίλυση των συγκρούσεων (conflicts):
$ git rebase --continue
Χρησιμοποιήστε το δικό σας εργαλείο συγχώνευσης για να λύσετε τις συγκρούσεις:
$ git mergetool
Χρησιμοποιείστε τον επεξεργαστή κειμένου για να λύσετε χειροκίνητα τις συγκρούσεις και (μετά μετά την επίλυση) σημείωσε το αρχείο ως επιλυμένο:
$ git add <resolved-file>
$ git rm <resolved-file>
Σύνθιψε (squash) τα commits:
$ git rebase -i <commit-just-before-first>

Τώρα αντικατέστησε αυτό,

pick <commit_id>
pick <commit_id2>
pick <commit_id3>

με αυτό,

pick <commit_id>
squash <commit_id2>
squash <commit_id3>

Αναίρεση

Απορρίψτε όλες τις τοπικές αλλαγές στον φάκελο εργασίας σας:
$ git reset --hard HEAD
Πάρτε όλα τα αρχεία από την περιοχή staging (δηλαδή να αναιρέσετε την τελευταία git add.):
$ git reset HEAD
Απορρίψτε τις τοπικές αλλαγές σε ένα συγκεκριμένο αρχείο:
$ git checkout HEAD <file>
Επαναφορά ενός commit (δημιουργώντας ένα νέο commit με αντίθετες αλλαγές): (by producing a new commit with contrary changes):
$ git revert <commit>
Επαναφορά του δείκτη HEAD σε ένα προηγούμενο commit και απέρριψε όλες τις αλλαγές από τότε:
$ git reset --hard <commit>
Επαναφορά του δείκτη HEAD σε τωρινή κατάσταση σε μια απομακρυσμένη διακλάδωση.
git reset --hard <remote/branch> e.g., upstream/master, origin/my-feature
Επαναφορά του δείκτη HEAD σε ενα προηγούμενο commit και διατήρησε όλες τις αλλαγές ως unstaged:
$ git reset <commit>
Επαναφορά του δείκτη HEAD σε ενα προηγούμενο commit και διατήρησε τις τοπικές αλλαγές που είναι uncommitted:
$ git reset --keep <commit>
Αφαίρεσε αρχεία που έγιναν καταλάθος commit πριν προστεθούν στο .gitignore
$ git rm -r --cached .
$ git add .
$ git commit -m "remove xyz file"

Git-Flow

Index


Εγκατάσταση

Θα χρειαστείτε μια λειτουργική εγκατάσταση του Git. Το Git flow λειτουργεί σε OSX, Linux και Windows.
OSX Homebrew:
$ brew install git-flow
OSX Macports:
$ port install git-flow
Linux (βασιζόμενο σε Debian):
$ apt-get install git-flow
Windows (Cygwin):
Χρειάζεστε το wget και το util-linux για να εγκαταστήσετε το git-flow.
$ wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash

Ξεκινώντας

Το Git flow πρέπει να αρχικοποιηθεί ώστε να προσαρμόσει το project σας. Ξεκινήστε να χρησιμοποιείτε το git-flow αρχικοποιώντας το σε ένα ήδη υπάρχον git αποθετήριο:
Αρχικοποίηση:
Θα χρειαστεί να απαντήσετε σε μερικές ερωτήσεις σχετικά με τις συμβάσεις ονοματοδοσίας των διαδλαδώσεών σας. Προτείνεται να χρησιμοποιήσετε τις προκαθορισμένες τιμές.
git flow init

Χαρακτηριστικά

Ανάπτυξη νέων χαρακτηριστικών για τα επερχόμενα releases. Συνήθως υπάρχουν μόνο σε αποθετήρια ανάπτυξης (develop).
Ξεκινήστε ένα νέο χαρακτηριστικό:
Αυτή η ενέργεια δημιουργεί μία νέα διακλάδωση για το χαρακτηριστικό βασιζόμενη στη 'develop' και "πηγαίνει" σε αυτή.
git flow feature start MYFEATURE
Τελειώστε ένα χαρακτηριστικό:
Τελειώστε την ανάπτυξη του χαρακτηριστικού. Αυτή η ενέργει εκτελεί τα ακόλουθα:
1) Συγχώνευση του MYFEATURE στο 'develop'.
2) Διαγράφει τη διακλάδωση MYFEATURE.
3) Πηγαίνει πίσω στη διακλάδωση 'develop'
git flow feature finish MYFEATURE
Δημοσίευση ενός χαρακτηριστικού:
Αναπτύσσετε ένα χαρακτηριστικό μαζί με άλλους; Δημοσιεύστε το χαρακτηριστικό αυτό σε έναν απομεκρυσμένο διακομιστή ώστε να χρησιμοποιηθεί και από άλλους χρήστες.
git flow feature publish MYFEATURE
Παίρνοντας ένα δημοσιευμένο χαρακτηριστικό:
Πάρτε ένα χαρακτηριστικό δημοσιευμένο από έναν άλλο χρήστη.
git flow feature pull origin MYFEATURE
Παρακολούθηση ενός χαρακτηριστικού:
Μπορείτε να παρακολουθήσετε ένα χαρακτηριστικό χρήσιμοποιώντας
git flow feature track MYFEATURE

Κάνοντας ένα Release

Προετοιμασία μιας νέας έκδοσης production. Υπάρχει το περιθώριο για μικρές διορθώσεις σφαλμάτων και την προετοιμασία των μετα-δεδομένων για το release
Ξεκινώντας ένα release:
Για να ξεκινήσετε ένα release, χρησιμοποιείστε την εντολή release του git flow. Δημιουργεί μία νέα 'release' διακλάδωση βασιζόμενη στην 'develop'. Προαιρετικά μπορείτε να χρησιμοποιήσετε ένα [BASE] commit sha-1 hash από όπου θα ξεκινήσει το release. Αυτό το commit πρέπει να είναι στη διακλάδωση 'develop'.
git flow release start RELEASE [BASE]
Είναι σοφό να δημοσιεύσετε τη διακλάδωση release μετά τη δημιουργία της ώστε να επιτρέψετε να την δουν κ άλλοι προγραμματιστές. Γίνεται παρόμοια με την εντολή δημοσίευσης του 'feature':
git flow release publish RELEASE
(Μπορείτε να παρακολουθήσετε ένα απομακρυσμένο release με το:
git flow release track RELEASE
Τελειώνοντας ένα release:
Το τελείωμα ενός release είναι ένα από τα μεγαλύτερα βήματα στο git branching. Εκτελούνται τα ακόλουθα βήματα:
1) Συγχώνευση της διακλάδωσης του release πίσω στο 'master'
2) Βάζει ετικέτα στο release με το όνομά της
3) Συγχωνεύει πίσω στο 'develop' το realease
4) Διαγράφει τη διακλάδωση του release
git flow release finish RELEASE
Μην ξεχάσετε να κάνετε push τις ετικέτες σας με την εντολή git push --tags

Hotfixes

Οι επείγουσες επιδιορθώσεις προκύπτουν από την ανάγκη να ενεργήσει κάποιος αμέσως μετά από μία ανεπιθύμητη κατάσταση μιας έκδοσης που τρέχει σε production. Μπορεί να διακλαδωθεί από μία ετικέτα στη 'master' διακλάδωση που σηματοδοτεί την production έκδοση.
Ξεκινώντας τo Git flow hotfix:
Όπως και με όλες τις άλλες εντολές του git flow, ένα hotfix ξεκινά με
$ git flow hotfix start VERSION [BASENAME]
Η έκδοση σηματοδοτεί το νέο όνομα του release μαζί με το hotfix. Προειρετικά μπορείτε να ορίσετε ένα όνομα που να ξεκινάει με αυτό (basename).
Τελειώνοντας ένα hotfix:
Τελειώνοντας ένα hotfix γίνεται συγχώνευση πίσω στο develop και στο master. Επιπλέον στο master δημιουργείται μία ετικέτα με την έκδοση του hotfix
git flow hotfix finish VERSION

Εντολές

Git


Το σχήμα του Git flow

Git