# Portuguese translations for git-gui glossary.
# Copyright (C) 2016 Shawn Pearce, et al.
# This file is distributed under the same license as the git package.
# Vasco Almeida <vascomalmeida@sapo.pt>, 2016.
msgid ""
msgstr ""
"Project-Id-Version: git-gui glossary\n"
"POT-Creation-Date: 2016-05-06 10:22+0000\n"
"PO-Revision-Date: 2016-05-06 12:32+0000\n"
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
"Language-Team: Portuguese\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.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 ""
"Outro SCM em português:\n"
"http://svn.code.sf.net/p/tortoisesvn/code/trunk/Languages/pt/TortoiseUI.po e "
"\n"
"http://svn.code.sf.net/p/tortoisesvn/code/trunk/Languages/pt/TortoiseDoc.po\n"
" em html: https://tortoisesvn.net/docs/release/TortoiseSVN_pt/index.html\n"
"\n"
"https://translations.launchpad.net/tortoisehg (medíocre)"

#. ""
msgid "amend"
msgstr "emendar"

#. ""
msgid "annotate"
msgstr "anotar"

#. "A 'branch' is an active line of development."
msgid "branch [noun]"
msgstr "ramo"

#. ""
msgid "branch [verb]"
msgstr "criar ramo"

#. ""
msgid "checkout [noun]"
msgstr "extração"

#. "The action of updating the working tree to a revision which was stored in the object database."
msgid "checkout [verb]"
msgstr "extrair"

#. ""
msgid "clone [verb]"
msgstr "clonar"

#. "A single point in the git history."
msgid "commit [noun]"
msgstr "commit"

#. "The action of storing a new snapshot of the project's state in the git history."
msgid "commit [verb]"
msgstr "submeter"

#. ""
msgid "diff [noun]"
msgstr "diferenças"

#. ""
msgid "diff [verb]"
msgstr "mostrar diferenças"

#. "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 "integração por avanço rápido"

#. "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 "obter"

#. "One context of consecutive lines in a whole patch, which consists of many such hunks"
msgid "hunk"
msgstr "excerto"

#. "A collection of files. The index is a stored version of your working tree."
msgid "index (in git-gui: staging area)"
msgstr "índice"

#. "A successful merge results in the creation of a new commit representing the result of the merge."
msgid "merge [noun]"
msgstr "integração"

#. "To bring the contents of another branch into the current branch."
msgid "merge [verb]"
msgstr "integrar"

#. ""
msgid "message"
msgstr "mensagem"

#. "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 "podar"

#. "Pulling a branch means to fetch it and merge it."
msgid "pull"
msgstr "puxar"

#. "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 "publicar"

#. ""
msgid "redo"
msgstr "refazer"

#. "An other repository ('remote'). One might have a set of remotes whose branches one tracks."
msgid "remote"
msgstr "remoto"

#. "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 "repositório"

#. ""
msgid "reset"
msgstr "repor"

#. ""
msgid "revert"
msgstr "reverter"

#. "A particular state of files and directories which was stored in the object database."
msgid "revision"
msgstr "revisão"

#. ""
msgid "sign off"
msgstr "assinar por baixo"

#. ""
msgid "staging area"
msgstr "área de estágio"

#. ""
msgid "status"
msgstr "estado"

#. "A ref pointing to a tag or commit object"
msgid "tag [noun]"
msgstr "tag"

#. ""
msgid "tag [verb]"
msgstr "criar tag"

#. "A regular git branch that is used to follow changes from another repository."
msgid "tracking branch"
msgstr "ramo de monitorização"

#. ""
msgid "undo"
msgstr "desfazer"

#. ""
msgid "update"
msgstr "atualizar"

#. ""
msgid "verify"
msgstr "verificar"

#. "The tree of actual checked out files."
msgid "working copy, working tree"
msgstr "cópia de trabalho, árvore de trabalho"

#. "a commit that succeeds the current one in git's graph of commits (not necessarily directly)"
msgid "ancestor"
msgstr "antecessor"

#. "prematurely stop and abandon an operation"
msgid "abort"
msgstr "abortar"

#. "a repository with only .git directory, without working directory"
msgid "bare repository"
msgstr "repositório nu"

#. "a parent version of the current file"
msgid "base"
msgstr "base"

#. "get the authors responsible for each line in a file"
msgid "blame"
msgstr "culpar"

#. "to select and apply a single commit without merging"
msgid "cherry-pick"
msgstr "efetuar cherry-pick (escolher-a-dedo?, selecionar?)"

#. "a commit that directly succeeds the current one in git's graph of commits"
msgid "child"
msgstr "filho"

#. "clean the state of the git repository, often after manually stopped operation"
msgid "cleanup"
msgstr "limpar"

#. "a message that gets attached with any commit"
msgid "commit message"
msgstr "mensagem de commit"

#. "a commit that precedes the current one in git's graph of commits (not necessarily directly)"
msgid "descendant"
msgstr "descendente"

#. "checkout of a revision rather than a some head"
msgid "detached checkout"
msgstr "extração destacada"

#. "any merge strategy that works on a file by file basis"
msgid "file level merging"
msgstr "integração ao nível de ficheiros"

#. "the last revision in a branch"
msgid "head"
msgstr "cabeça"

#. "script that gets executed automatically on some event"
msgid "hook"
msgstr "gancho"

#. "the first checkout during a clone operation"
msgid "initial checkout"
msgstr "extração inicial"

#. "a branch that resides in the local git repository"
msgid "local branch"
msgstr "ramo local"

#. "a Git object that is not part of any pack"
msgid "loose object"
msgstr "objeto solto"

#. "a branch called by convention 'master' that exists in a newly created git repository"
msgid "master branch"
msgstr "ramo mestre"

#. "a remote called by convention 'origin' that the current git repository has been cloned from"
msgid "origin"
msgstr "origem"

#. "a file containing many git objects packed together"
msgid "pack [noun]"
msgstr "pacote"

#. "a Git object part of some pack"
msgid "packed object"
msgstr "objeto compactado"

#. "a commit that directly precedes the current one in git's graph of commits"
msgid "parent"
msgstr "pai"

#. "the log file containing all states of the HEAD reference (in other words past pristine states of the working copy)"
msgid "reflog"
msgstr "reflog"

#. "decide which changes from alternative versions of a file should persist in Git"
msgid "resolve (a conflict)"
msgstr "resolver (um conflito)"

#. "abandon changes and go to pristine version"
msgid "revert changes"
msgstr "reverter alterações"

#. "expression that signifies a revision in git"
msgid "revision expression"
msgstr "expressão de revisão"

#. "add some content of files and directories to the staging area in preparation for a commit"
msgid "stage/unstage"
msgstr "preparar/retirar"

#. "temporarily save changes in a stack without committing"
msgid "stash"
msgstr "empilhar"

#. "file whose content is tracked/not tracked by git"
msgid "tracked/untracked"
msgstr "controlado/não controlado"
