# Translation of git-gui glossary to Greek
# Copyright (C) 2009 Jimmy Angelakos
# This file is distributed under the same license as the git-gui package.
# Jimmy Angelakos <vyruss@hellug.gr>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: git-gui-glossary\n"
"POT-Creation-Date: 2008-01-07 21:20+0100\n"
"PO-Revision-Date: 2009-06-23 20:41+0300\n"
"Last-Translator: Jimmy Angelakos <vyruss@hellug.gr>\n"
"Language-Team: Greek <i18n@lists.hellug.gr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 0.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
msgid "English Term (Dear translator: This file will never be visible to the user!)"
msgstr ""

#. ""
msgid "amend"
msgstr "διόρθωση"

#. ""
msgid "annotate"
msgstr "σχολιασμός"

#. "A 'branch' is an active line of development."
msgid "branch [noun]"
msgstr "κλάδος [αντικείμενο]"

#. ""
msgid "branch [verb]"
msgstr "διακλάδωση [ενέργεια]"

#. ""
msgid "checkout [noun]"
msgstr "εξαγωγή [αντικείμενο]"

#. "The action of updating the working tree to a revision which was stored in the object database."
msgid "checkout [verb]"
msgstr "εξαγωγή [ενέργεια]"

#. ""
msgid "clone [verb]"
msgstr "κλωνοποίηση [ενέργεια]"

#. "A single point in the git history."
msgid "commit [noun]"
msgstr "υποβολή [αντικείμενο] "

#. "The action of storing a new snapshot of the project's state in the git history."
msgid "commit [verb]"
msgstr "υποβολή [ενέργεια]"

#. ""
msgid "diff [noun]"
msgstr "διαφορά [αντικείμενο] "

#. ""
msgid "diff [verb]"
msgstr "διαφορά [ενέργεια]"

#. "A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
msgid "fast forward merge"
msgstr "συγχώνευση επιτάχυνσης"

#. "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
msgid "fetch"
msgstr "ανάκτηση"

#. "One context of consecutive lines in a whole patch, which consists of many such hunks"
msgid "hunk"
msgstr "κομμάτι"

#. "A collection of files. The index is a stored version of your working tree."
msgid "index (in git-gui: staging area)"
msgstr "ευρετήριο (στο git-gui: περιοχή σταδιοποίησης)"

#. "A successful merge results in the creation of a new commit representing the result of the merge."
msgid "merge [noun]"
msgstr "συγχώνευση [αντικείμενο]"

#. "To bring the contents of another branch into the current branch."
msgid "merge [verb]"
msgstr "συγχώνευση [ενέργεια]"

#. ""
msgid "message"
msgstr "μήνυμα"

#. "Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in 'remotes/<name>'."
msgid "prune"
msgstr "κλάδεμα"

#. "Pulling a branch means to fetch it and merge it."
msgid "pull"
msgstr "λήψη"

#. "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
msgid "push"
msgstr "ώθηση"

#. ""
msgid "redo"
msgstr "ξανά"

#. "An other repository ('remote'). One might have a set of remotes whose branches one tracks."
msgid "remote"
msgstr "απομακρυσμένο"

#. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
msgid "repository"
msgstr "αποθετήριο"

#. ""
msgid "reset"
msgstr "επαναφορά"

#. ""
msgid "revert"
msgstr "αναίρεση"

#. "A particular state of files and directories which was stored in the object database."
msgid "revision"
msgstr "αναθεώρηση"

#. ""
#, fuzzy
msgid "sign off"
msgstr "αποσύνδεση"

#. ""
msgid "staging area"
msgstr "περιοχή σταδιοποίησης"

#. ""
msgid "status"
msgstr "κατάσταση"

#. "A ref pointing to a tag or commit object"
msgid "tag [noun]"
msgstr "ετικέτα [αντικείμενο]"

#. ""
msgid "tag [verb]"
msgstr "ετικέτα [ενέργεια]"

#. "A regular git branch that is used to follow changes from another repository."
msgid "tracking branch"
msgstr "κλάδος παρακολούθησης"

#. ""
msgid "undo"
msgstr "αναίρεση"

#. ""
msgid "update"
msgstr "ενημέρωση"

#. ""
msgid "verify"
msgstr "επαλήθευση"

#. "The tree of actual checked out files."
msgid "working copy, working tree"
msgstr "αντίγραφο εργασίας"


