Partilhar via


Compreender como é que os comandos do Controlo de Versões do Team Foundation (TFVC) são mapeados para fluxos de trabalho do Git

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Você planeja adotar o Git, está familiarizado com as ações do TFVC e quer saber como eles são mapeados para o Git? Ambos são sistemas de controle de fonte poderosos e maduros. No entanto, mapear ações comuns às quais você se acostumou de um para o outro pode ser uma experiência confusa.

Este artigo não se aprofunda nos comandos do Git, pois eles estão bem documentados na documentação do produto, mas mostra exemplos para ajudá-lo a tomar as decisões certas, enquanto se move através de um fluxo de trabalho típico de criação -> clone -> ramificação -> alteração -> confirmação -> push.

Comece no início criando um novo repositório

Cada projeto pode hospedar repositórios TFVC e Git no mesmo projeto, criando um TFVC e um ou mais repositórios Git.

Criar um novo repositório Git no Azure Repos

Assim que o repositório for criado, serão apresentadas instruções passo a passo para começar rapidamente.

Introdução a um novo repositório Git no Azure Repos

Clique em Criar um ficheiro ReadMe no final da página de instruções, para criar algum histórico e fornecer o contexto do repositório.

Criar um ficheiro README para iniciar um novo repositório Git no serviço Azure Repos

Crie um espaço de trabalho e obtenha as últimas notícias

Ao se conectar a um repositório TFVC pela primeira vez, você normalmente cria um espaço de trabalho e obtém o código mais recente. Então, como você começa no Git?

Semelhante a um espaço de trabalho no TFVC, você clona o repositório Git para uma pasta na sua máquina. A clonagem fará o download de todo o conteúdo e histórico do repositório para sua máquina local. Depois de ter o repositório clonado, quase todas as operações são executadas localmente. Você pode trabalhar offline com um backup completo do repositório centralizado.

git clone https://dev.azure.com/demo-fabrikam/Fabrikam/_git/Mapping-TFVC-actions-to-Git

Você só precisa clonar uma vez por repositório, mas, como os espaços de trabalho do TFVC, pode ter múltiplos clones para isolar o trabalho em progresso. No entanto, a ramificação é normalmente uma maneira melhor de isolar as alterações.

Criar uma ramificação

Com o Git, você está sempre trabalhando em uma filial e, por padrão, namain filial. Recomendamos que você crie várias ramificações locais. É um processo que leva segundos e permite que você alterne perfeitamente entre ramificações e trabalhe isoladamente. Ao contrário das ramificações TFVC, que são limitadas a caminhos, as ramificações do Git são de âmbito de repositório. Eles são leves, podem ser apenas locais ou compartilhados com outras pessoas quando você estiver pronto para compartilhar suas alterações.

Considere a ramificação se precisar trabalhar isoladamente, se precisar suspender seu trabalho, se concentrar em novos recursos ou se estiver planejando realizar uma solicitação pull do Git.

Como usuário de TFVC, repita algumas vezes:

  • Recomenda-se ramificação!
  • A ramificação Git é barata, rápida e poderosa!
  • O Git incentiva você a usar filiais locais .
  • Publique ramificações locais em seu repositório centralizado conforme necessário.
  • Sempre verifique o contexto da ramificação antes de fazer alterações.
  • Nomeie a ramificação usando uma convenção comum, como users/alias/branchname, por exemplo: users/doris/newfeature

Crie e alterne para uma ramificação de tópico local, chamada francis/demo-feature. É uma boa prática executar um git status primeiro, para verificar se está na ramificação certa.

git checkout -b francis/demo-feature

Criando uma nova ramificação do Git a partir da linha de comando do Windows

Faça uma alteração adicionando arquivos

Semelhante à experiência TFVC, novos arquivos na pasta de trabalho não são automaticamente parte do repositório. Você prepara os seus novos arquivos com o comando git add, que é sinónimo de executar uma operação add Items to Folder em TFVC.

git add <file>

ou

git add --all

Usando a amostra pré-preparada, você terá 13 novos arquivos que foram incluídos e preparados no repositório local.

Ver alterações pendentes

Quer saber quais mudanças estão agora no seu ambiente de trabalho? Como antes, o comando Git status ou a vista Changes no IDE do Visual Studio mostrará as alterações na sua árvore de trabalho.

git status

Usando o status do Git para mostrar alterações em estágios

Registar alterações e confirmar no local

No TFVC, você partilha as suas alterações através de um check-in, que envia as mudanças pendentes para o servidor. O processo Git é um pouco diferente. Primeiro, você se compromete com o repositório local, criando um objeto de confirmação (como um conjunto de alterações) e, em seguida, envia essas alterações para o servidor.

Você confirma as alterações em seu repositório local usando git commit, semelhante a um Checkin Pending Changes no TFVC. Uma diferença importante é que git commit confirma as suas alterações no repositório local em vez do repositório remoto.

git commit

Registar alterações no servidor/repositório remoto

Primeiro, você precisa publicar sua ramificação local francis/demo-feature no servidor remoto, que inclui todas as alterações confirmadas.

git push --set-upstream origin francis/demo-feature

Para sincronizar outras atualizações no seu local com o repositório remoto, você precisa enviar suas alterações usando git push. A prática recomendada usando o comando git ou o IDE do Visual Studio é:

  • fetch para transferir conteúdo e pré-visualizar as alterações recebidas de outras pessoas.
  • pull para descarregar e depois integrar alterações de outras pessoas.
  • push para compartilhar as alterações locais.

Ver histórico

Para ver o commit que acabou de criar, pode rever o histórico local.

Para um histórico compacto, use:

git log --oneline

Para uma visualização detalhada, utilize:

git log

Usando o log do Git para revisar o histórico de ramificações

Como mostrado acima, git log lista o autor, o e-mail, a data de criação e o checksum SHA-1 do commit. Como usuário do TFVC, você pode querer usar a opção para incluir mais informações, como nome do --stat arquivo e estatísticas de alteração.

Você também pode visualizar o histórico do repositório centralizado usando o portal web dos Azure DevOps Services.

No portal Web dos Serviços de DevOps do Azure, escolha Histórico > do CODE ou Histórico > do CODE Explorer >

Exibindo o histórico da filial no Azure Repos

Neste ponto, exploraste com sucesso o fluxo de trabalho criar - clonar - ramificar - alterar - confirmar - enviar , com base em ações comuns do TFVC.

Você também tem a opção de emitir um pull request para publicar e preparar as suas alterações no servidor/repositório remoto neste momento.

Outras ações

Mudar de ramo

Ao trabalhar com o Git, você não altera ramificações alternando para pastas e locais separados em sua máquina. Você altera o contexto executando um checkout, fazendo com que todo o diretório de trabalho corresponda ao branch ou commit selecionado. Rápido e simples!

Linha de comandos

git checkout <branch>

Se você esqueceu quais ramificações tem em seu repositório local, use git branch para listar as ramificações padrão e conhecidas.

Tenha em mente em qual ramo você está trabalhando! Quando se trabalha com várias ramificações no Git, alterna-se entre elas no mesmo diretório de trabalho. Alternar entre filiais é uma operação rápida, e certificar-se de que você está sempre na filial certa é uma boa prática.

Obter a versão mais recente

Há muitas razões para querer obter atualizações. Por exemplo, quando você precisar alternar o contexto para outro projeto, atualize sua máquina de desenvolvimento com a versão mais recente da base de código.

Linha de comandos

git pull

ou

git fetch

seguido de

git merge FETCH_HEAD

Obtenha sempre a versão mais recente e resolva conflitos de mesclagem localmente.

Desfazer alterações locais

Pode haver um motivo válido para reverter todas as revisões feitas no repositório local e redefinir o ambiente de trabalho para a versão mais recente do repositório remoto.

Linha de comandos

git reset --hard HEAD

seguido de

git pull origin

seguido de

git clean -xdf

O cenário é semelhante a fazer um Get > Latest Version com as opções Overwrite writable files that are not checked out e Overwrite all files if the local version matches the specified version do TFVC.

Como alternativa, você pode excluir manualmente seu repositório local — depois de fazer uma cópia validada, é claro — e, em seguida, clone o repositório novamente.

Há muito mais ações e opções disponíveis para os usuários do Git. Aqui estão alguns sites de referência úteis para leitura adicional:

Perguntas e Respostas

E a sincronização?

"O IDE Commit and Sync do Visual Studio não faz tudo isso magicamente?", você pode estar se perguntando.

Selecione Git>Commit ou Stash para abrir alterações do Git. Selecione o menu deslizante Confirmar tudo e, em seguida, selecione Confirmar tudo e sincronizar.

Ou, no Team Explorer, selecione o menu suspenso Commit e, em seguida, Comandar e Sincronizar.

Confirmar e sincronizar no Team Explorer

Com a magia vem a responsabilidade! Muitos utilizadores não gostam do sync porque às vezes pode desorganizar o histórico local e adicionar um commit de mesclagem sobre seu commit atual. Quando estiver em mau estado, você terá que reverter para a linha de comando, pois atualmente não há suporte para redefinição no IDE.

Autores: Jesse Houwing, Martin Hinshelwood, Mike Fourie e Willy Schaub da ALM | DevOps Rangers. Conecte-se com eles aqui.

(c) 2015 Microsoft Corporation. Todos os direitos reservados. Este documento é fornecido "no estado em que se encontra". As informações e opiniões expressas neste documento, incluindo URL e outras referências a sites da Internet, podem ser alteradas sem aviso prévio. Você assume o risco ao utilizá-lo.

Este documento não lhe fornece direitos legais sobre nenhuma propriedade intelectual em qualquer produto Microsoft. Poderá copiar e utilizar o presente documento para efeitos de referência pessoal a título interno.