# Translation of git-gui to Brazilian Portuguese
# Copyright (C) 2007 Shawn Pearce, et al.
# This file is distributed under the same license as the git-gui package.
#
# Alexandre Erwin Ittner <alexandre@ittner.com.br>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-01-26 15:47-0800\n"
"PO-Revision-Date: 2010-09-18 11:09-0300\n"
"Last-Translator: Alexandre Erwin Ittner <alexandre@ittner.com.br>\n"
"Language-Team: Brazilian Portuguese <>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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 "corrigir"

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

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

#. ""
msgid "branch [verb]"
msgstr "ramificar"

#. ""
msgid "checkout [noun]"
msgstr "checkout"

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

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

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

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

#. ""
msgid "diff [noun]"
msgstr "diff"

#. ""
msgid "diff [verb]"
msgstr "comparar"

#. "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 "mesclagem rápida"

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

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

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

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

#. ""
msgid "message"
msgstr "descrição da revisão"

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

#. "Pulling a branch means to fetch it and merge it."
msgid "pull"
msgstr "receber e mesclar"

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

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

#. "An other repository ('remote'). One might have a set of remotes whose branches one tracks."
msgid "remote"
msgstr "repositório 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 "descartar, redefinir"

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

#. ""
msgid "staging area"
msgstr "???"

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

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

#. ""
msgid "tag [verb]"
msgstr "marcar etiqueta"

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

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