Perguntas frequentes sobre Git

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Como baixar com facilidade um branch remoto para o repositório local?

Primeiro, verifique se você tem o repositório origin configurado. Você terá esse repositório se tiver clonado git clone). Quando você faz check-out de um branch que não existe no local, o Git verifica se há um branch remoto com o mesmo nome. Em caso positivo, o Git cria um branch local com referência ao branch remoto em questão. Use git pull para fazer download dos commits e fazer com que o Git acompanhe o histórico do branch no local.

Como descobrir em qual branch estou trabalhando?

git branch sem argumentos mostra os branches locais e destaca aqueles em que você fez check-out. No Visual Studio, a barra de status também exibe o branch atual quando você trabalha em um projeto armazenado no Repositório do Git local.

Quando fazer commits do Git?

A prática aceita é criar commits separados para alterações logicamente diferentes. Pense nos commits como entradas em um livro de registro. Sempre que você fizer uma alteração digna de nota, registre-a em um commit. Uma opção popular é permitir que todos façam commits localmente quantas vezes quiserem, mas antes de efetuarem push dos commits locais, combiná-los em um único commit por meio da troca de base. Essa opção dá flexibilidade aos usuários para fazer commits frequentes, mantendo o histórico de commits simplificado.

Se cada branch mantiver seu histórico completo de commits, isso não dificultará o acompanhamento histórico de commits de *main* ao longo do tempo?

Projetos grandes com muitos commits e uma variedade de colaboradores podem gerar históricos de commit para o branch main que representa o histórico de desenvolvimento dos branches de tópico mesclados em main mais do que o histórico de desenvolvimento do projeto em geral. O Git tem um local para condensar commits em branches por meio de combinações e trocas de base. Quando você combina commits, o histórico de commits em um branch fica menos detalhado, o que torna o histórico de commits mais simples no branch principal após a mesclagem.

Como descobrir quem fez uma alteração específica em um arquivo?

Use o comando git blame para descobrir quem fez uma alteração específica em um arquivo. No repositório local, é possível executar git blame com o parâmetro -L, especificando as linhas de interesse. Blame produz a saída formatada mostrando o commit que atualizou pela última vez a linha e o nome da pessoa que fez o commit.

> git blame foo.js -L 20,+40  # show the blame output for the next 40 lines starting at line 20

215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 20) line 20 of the code
215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 21) line 21 of the code
215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 22) line 22 of the code

Blame pesquisa o histórico de commits para você. Você também pode examinar o histórico de um arquivo no portal da Web para determinar quem fez uma alteração e quando. Abra o Code Explorer do seu repositório e o branch e selecione o arquivo em questão. O Azure Repos mostrará o histórico de commit completo do arquivo no branch atual.

Fiz alterações em alguns arquivos e agora não consigo fazer check-out para um branch diferente ou trocar base do meu trabalho.

Fazer check-out em um branch diferente no Git afetará o estado dos arquivos em seu sistema de arquivos. O Git usa o histórico de commits para garantir que você trabalhe com os arquivos que representam o estado do branch. Se você tentar alterar branches enquanto tiver alterações não confirmadas, essas alterações serão substituídas durante o check-out. Como o Git não quer que você perca acidentalmente suas alterações, ele impede que o check-out aconteça. Você tem duas opções:

Eu fiz algum trabalho, mas preciso mudar para outra coisa. Como salvar meu trabalho para mais tarde sem fazer commit das alterações?

Às vezes, você deseja manter as alterações sem fazer commit, porque elas não estão prontas. Use stash no Git. Um stash usa as alterações atuais preparadas e não preparadas no branch e salva o trabalho. Em seguida, coloca o branch de volta no estado do último commit. É possível alterar para o outro branch, fazer seu trabalho e, em seguida, retornar ao branch e executar stash apply para restaurar suas alterações.

> git stash
Saved working directory and index state WIP on feature1: be26067 updated endpoint docs
HEAD is now at be26067

Quando você executar git stash apply, as alterações armazenadas em stash mais recentemente serão aplicadas ao branch atual. Se houver um conflito ao aplicar as alterações salvas em stash, stash restaurará as alterações dos arquivos que não entram em conflito e criará marcadores nos arquivos que entram em conflito para que você resolva. É necessário mesclar as alterações manualmente nesse caso.

Quando terminar de usar o stash, exclua-o com git stash drop. Esse comando remove o último conjunto de alterações com stash.

É possível ter vários stashes, mas isso requer mais manipulação manual, pois você precisa aplicar explicitamente e remover stashes. Saiba mais na documentação do Git Stash.

Como alterar o editor padrão para ferramentas de linha de comando do Git?

Por padrão, o Git de linha de comando usará um editor de linha de comando ao solicitar mensagens de commit, executar trocas de base e outros trabalhos que requerem informações adicionais para serem concluídos. O editor padrão é configurado com git config:

> git config core.editor _path_to_editor_ _options_to_editor_

O Git para Windows facilita a definição do bloco de notas como o editor:

> git config core.editor notepad

Este comando configura o Bloco de Notas do Windows para editar informações do Git conforme necessário e passar corretamente o texto do Git para o Bloco de Notas. Também é possível especificar

> git config format.commitMessageColumns 72 

para manter as colunas de texto nas mensagens de commit no 72 preferencial e fazer a quebra linha depois de atingir o limite de caracteres em uma linha.

Como alterar o nome de usuário e o email exibidos em meus commits?

O Git coloca um nome de usuário e informações de endereço de email dentro de cada commit, e o Azure Repos usa essas informações ao exibir commits e ao trabalhar com pull requests. Se você estiver trabalhando na linha de comando, poderá atualizar as informações de nome e email exibidas com o comando git config:

> git config --global user.email "frank@fabrikam.com"
> git config --global user.name "Francis Totten"

A opção --global definirá o email e o nome incluídos em commits para todos os repositórios Git nesse sistema. Se você quiser alterar as configurações de um único repositório, altere para o diretório em que o Repositório do Git está localizado e execute os comandos acima sem o sinalizador --global.

Também é possível alterar as configurações de nome e email do Visual Studio. No menu Git, selecione Configurações Na caixa de diálogo Opções, selecione Configurações globais do Git ou Configurações do Repositório do Git>Geral.

O Visual Studio 2019 versão 16.8 e versões posteriores fornece uma experiência de controle de versão do Git, mantendo a interface do usuáriodo Team Explorer Git. Para usar o Team Explorer, desmarque Ferramentas>Opções>Versão prévia do recurso>Nova experiência do usuário do Git na barra de menus. Você pode exercer os recursos do Git de qualquer interface de forma intercambiável.

No Team Explorer, escolha Configurações, e abaixo de Git, selecione o link Configurações globais ou Configurações de repositório.