Índice de termos nesta página:
O tópico Enviar uma contribuição demonstra como os conceitos desses termos se aplicam na prática do fluxo de contribuição.
Este tópico apresenta uma lista de termos essenciais para trabalhar com o Git. Existem muito mais palavras e operações associadas a este sistema de controle de versão, mas aqui estão as mais usadas no dia a dia e que você precisa para completar o tutorial.
Lembre-se: como Tech Writer, você não precisa necessariamente saber como executar os comandos do Git em um terminal, mas você precisa pelo menos saber quais existem e o que eles fazem. Esta documentação deve ajudar nesta parte.
Repositório é o local onde um projeto fica armazenado no sistema de controle de versão. Dentro do repositório, ficam guardados todos os arquivos fonte do projeto.
Cada repositório pode ser configurado como público ou privado. Se o repositório estiver público, qualquer pessoa pode acessá-lo. Se for privado, somente o dono do repositório tem acesso.
Uma mesma conta no GitHub pode ter múltiplos repositórios.
Uma issue é uma espécie de “ticket” que é aberto para um projeto.
As pessoas usam issues para:
Em projetos públicos, qualquer pessoa que tenha conta no GitHub pode abrir uma issue.
O repositório que está no GitHub é chamado de remote copy (ou cópia remota).
É possível fazer o download da cópia remota de um projeto e trabalhar nele localmente. A cópia baixada é chamada de working copy (ou cópia de trabalho).
No Git, a operação de copiar o projeto do ambiente remoto para o local se chama clone.
Como foi dito no tópico sobre Git e GitHub, um sistema de controle de versão permite que você trabalhe com diferentes revisões de um mesmo arquivo simultaneamente. O controle de versão permite também trabalhar com versões do projeto inteiro.
A versão principal do seu projeto (versão de produção) é chamada master.
Você pode criar ramificações do master, as quais podem ser alteradas de maneira independente. Cada ramificação é chamada de branch. Branches permitem fazer grandes alterações sem afetar a versão de produção.
Tag é uma maneira de identificar os grandes marcos do seu projeto. No caso de um software, tags podem representar grandes releases do produto. Tags são associados aos branches dos grandes releases, facilitando a identificação de versões específicas.
Clone é a ação de baixar o projeto para um ambiente local. Ou seja, fazer o download da cópia remota do projeto para obter uma cópia de trabalho (local). Por exemplo, se você precisa baixar o projeto do TW Livre para alterá-lo, você precisa fazer um clone do projeto.
Fork é a ação de criar uma cópia do repositório de uma conta do GitHub para a sua própria conta.
Por exemplo, você pode fazer uma cópia do projeto do TW Livre da conta original para a sua conta pessoal no GitHub — para isso, basta fazer um fork do projeto original.
Quando você faz o clone de um projeto, você pode começar a alterá-lo no ambiente local. Depois de alterar o projeto, você precisa enviar as alterações para a cópia remota.
O processo de envio das alterações da cópia de trabalho (local) para a cópia remota (repositório) envolve quatro operações principais: add, stage, commit e push.
Estas são as descrições de cada operação, na ordem em que elas devem ser feitas:
Estas operações são os estágios em que suas alterações precisam passar para chegar da sua cópia de trabalho até a cópia remota.
Somente as pessoas que têm acesso direto ao projeto original podem fazer um push. Pessoas de fora do projeto que queiram enviar alterações, precisam fazer um pull request.
O pull é o comando que puxa as alterações do repositório (remoto) para a sua cópia de trabalho (local).
As alterações obtidas pelo pull podem ter sido feitas por você mesmo (diretamente no repositório) ou por outra pessoa que esteja contribuindo com o seu projeto.
O pull é importante para manter os projetos sincronizados. De maneira geral, recomenda-se sempre fazer um pull antes de começar a alterar algum arquivo do projeto. Esta prática garante que você está trabalhando na versão mais recente dos arquivos.
Pull request é a operação que envia uma alteração de um repositório para outro.
Ao contribuir com open source, você não fará um push diretamente para o projeto original. Para enviar sua contribuição, você precisa:
Uma pessoa responsável pelo projeto original irá receber seu pull request, analisá-lo e decidir o que fazer com o pedido. Ela pode aceitar as alterações e fazer o pull ou devolver a solicitação pedindo alguns ajustes.
Depois que você termina de trabalhar com um branch, você precisa incorporar as alterações deste branch para outro (normalmente o Master). Esta operação de incorporar um branch a outro se chama merge.
O merge evita que todas as alterações feitas em um branch precisem ser replicadas manualmente para outro branch. Esta operação também permite que alguém revise a junção das alterações entre os branches, antes de enviar para o Master.
Pense no Master e nos branches como se você estivesse trabalhando paralelamente em duas versões diferentes do mesmo projeto. Eventualmente, você precisará juntar as alterações feitas em uma versão (branch) com a versão principal (Master). O merge é esta ação de juntar as duas versões.
Quando se trabalha em equipe, é possível que você precise enviar um pedido de Merge para alguém aprovar — este processo é chamado de merge request. Outra pessoa irá revisar o merge request antes de aceitar as alterações e incorporá-las no Master.
Tracked e untracked são as situações em que um arquivo se encontra no seu working copy.
Ao trabalhar com controle de versão, você deve querer que todo o seu projeto esteja versionado. Só assim você garante que está tudo guardado no repositório e pronto para ser editado por toda a equipe.
Docs-as-code (“documentação como código”) é o conceito de trabalhar com múltiplas revisões da documentação e versioná-la. É a metodologia de trabalho onde a documentação fica num repositório e está sob um controle de versão, assim como o código-fonte do software. Com a metodologia docs-as-code, a documentação passa por todas as operações explicadas aqui na página de terminologias.