Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022
A ramificação padrão é a primeira ramificação que o Git verificará num novo clone. Além disso, por padrão, os pull requests direcionam esta ramificação.
Vamos percorrer o processo de alteração da ramificação padrão. Também abordaremos outras coisas que você deve considerar e atualizar ao fazer essa alteração. Finalmente, veremos uma ferramenta para facilitar a transição.
Pré-requisitos
| Categoria | Requerimentos |
|---|---|
| Acesso ao projeto | Membro de um projeto . |
| Permissões | - Ver código em projetos privados: Acesso pelo menos Básico. - Clone ou contribua para o código em projetos privados: Membro do grupo de segurança Contributors ou permissões correspondentes no projeto. - Definir permissões de ramo ou repositório: Gerir permissões para o ramo ou repositório. - Alterar ramificação padrão: Editar políticas e permissões para o repositório. - Importar um repositório: Membro do grupo de segurança Administradores de Projeto ou com permissão de Criar repositório ao nível do projeto Git definida como Permitir. Para obter mais informações, consulte Definir permissões do repositório Git. |
| Serviços | Repos ativado. |
| Ferramentas | Opcional. Utilize os comandos az repos: Azure DevOps CLI. |
Observação
Em projetos públicos, os usuários com acesso Partes Interessadas têm acesso total aos repositórios do Azure, incluindo visualização, clonagem e contribuição para o código.
| Categoria | Requerimentos |
|---|---|
| Acesso ao projeto | Membro de um projeto . |
| Permissões | - Visualização de código: Pelo menos acesso básico. - Clone ou contribua para o código: Membro do grupo de segurança Contributors ou com permissões correspondentes no projeto. |
| Serviços | Repos ativado. |
Definir uma nova ramificação padrão
Você pode usar uma ramificação diferente de main para novas alterações ou alterar sua linha principal de desenvolvimento em seu repositório. Para alterar o nome da ramificação padrão para novos repositórios, consulte Todas as configurações e políticas de repositórios.
Para alterar a ramificação padrão do repositório para mesclar novas solicitações pull, você precisa de pelo menos duas ramificações. Se houver apenas uma filial, já é o padrão. Você deve criar uma segunda ramificação para alterar o padrão.
Observação
Alterar a ramificação padrão requer que você tenha Editar políticas permissão. Para obter mais informações, consulte Definir permissões do repositório Git.
No repositório do projeto, selecione Ramos.
Na página Ramos, selecione Mais opções ao lado do novo ramo que deseja como padrão e escolha Definir como ramificação padrão.
Depois de definir a nova ramificação padrão, você pode excluir o padrão anterior, se desejar.
Há outros aspetos que você deve considerar antes de fazer essa alteração.
Escolha um nome
Git 2.28 adicionou a capacidade de escolher um nome de ramificação inicial.
Ao mesmo tempo, Azure Repos, GitHub e outros provedores de hospedagem Git adicionaram a capacidade de escolher um nome de ramificação inicial diferente.
Anteriormente, a ramificação padrão era quase sempre chamada master.
O nome alternativo mais popular é main.
Opções menos comuns incluem trunk e development.
Na ausência de quaisquer restrições das ferramentas que você usa ou da equipe em que você está, qualquer nome de filial válido funcionará.
Atualizar outros sistemas
Quando você muda para uma ramificação padrão diferente, outras partes do seu fluxo de trabalho podem ser afetadas. Você precisará levar essas partes em consideração ao planejar uma mudança.
Tubulações
Atualize os gatilhos de CI para todos os pipelines. Os pipelines de designer podem ser editados na Web. Os pipelines YAML podem ser editados em seus respetivos repositórios.
Pedidos de pull durante o voo
Redirecionar cada solicitação pull aberta para a nova ramificação padrão.
Clones existentes
Novos clones do repositório obterão a nova ramificação padrão.
Após a mudança, todos com um clone existente devem executar git remote set-head origin -a (substituindo origin pelo nome do controle remoto se for outra coisa) para atualizar sua exibição da ramificação padrão do remoto.
As futuras novas filiais devem basear-se no novo incumprimento.
Ligações recebidas
Alguns marcadores, documentos e outros arquivos não codificados que apontam para arquivos no Azure Repos precisarão ser atualizados. O nome da ramificação de um arquivo ou diretório pode aparecer na URL.
Se um URL contiver uma cadeia de caracteres de consulta para version, por exemplo, &version=GBmybranchname, esse URL deverá ser atualizado.
Felizmente, a maioria dos links para a ramificação padrão não terá um segmento version e pode ser deixada as-is.
Além disso, depois de excluir a ramificação padrão antiga, as tentativas de navegar até ela serão levadas para o novo padrão de qualquer maneira.
Espelhamento temporário
Um repositório Git só pode ter uma ramificação padrão. No entanto, por um tempo, você pode configurar o espelhamento ad-hoc entre o padrão antigo e o novo. Dessa forma, se os usuários finais continuarem a recorrer ao padrão antigo, eles não precisarão refazer o trabalho do lado deles. Usaremos do Azure Pipelines para configurar esse espelhamento temporário.
Observação
Esta seção usa linguagem que está em desacordo com perspetiva da Microsoft.
Especificamente, a palavra master aparece em vários lugares consistente com a forma como tem sido usada no Git.
O objetivo deste tópico é explicar como mudar para uma linguagem mais inclusiva, como main.
Evitar qualquer menção a master tornaria as direções muito mais difíceis de entender.
O pipeline de espelhamento
Observação
Essas instruções não são infalíveis, e a configuração do repositório pode exigir alterações adicionais, como afrouxamento de permissões e políticas.
Advertência
Se as ramificações padrão antigas e novas forem atualizadas antes que este pipeline seja executado, o pipeline não poderá refletir as alterações. Alguém terá que mesclar manualmente ramificação padrão antiga na nova ramificação padrão para executá-la automaticamente novamente.
Para todas as compilações de CI existentes, atualize-as para acionar em relação à sua nova ramificação padrão em vez da antiga.
Conceda à identidade de build a permissão Contribute para o seu repositório. Navegue até Configurações do Projeto>Repositórios>(seu repositório)>Permissões. Pode haver até duas identidades, uma para o serviço de compilação da coleção de projetos e outra para o serviço de compilação do projeto. Verifique se a permissão Contribuir diz Permitir.
Se a nova ramificação padrão tiver políticas de ramificação, conceda também à identidade de compilação as políticas de Bypass ao enviar permissão. Essa permissão é um risco de segurança, uma vez que um usuário mal-intencionado pode criar um pipeline para inserir código em um repositório em seu projeto. Quando o espelhamento não for mais necessário, certifique-se de remover essa permissão.
Adicione um novo arquivo
mirror.ymlao seu repositório na nova ramificação padrão. Neste exemplo, assumimos que a ramificação padrão antiga foimastere a nova émain. Atualize as ramificações de acionamento e a linhagit pushse os nomes das ramificações forem diferentes.
trigger:
branches:
include:
- main
- master
pool: { vmImage: ubuntu-latest }
steps:
- checkout: self
persistCredentials: true
- script: |
git checkout $(Build.SourceBranchName)
git push origin HEAD:master HEAD:main
displayName: Mirror old and new default branches
- Crie um novo pipeline, escolhendo "Azure Repos Git" e "Existing Azure Pipelines YAML file" no assistente.
Escolha o arquivo
mirror.ymlque você adicionou na etapa anterior. Salve e execute o pipeline.
Solução de problemas
Este pipeline será executado sempre que houver um push para master ou para main.
Ele os manterá em sincronia, desde que novas confirmações não cheguem em ambas as ramificações simultaneamente.
Se o pipeline começar a falhar com uma mensagem de erro como "As atualizações foram rejeitadas porque uma ponta de ramificação empurrada está atrás de seu controle remoto", alguém terá que mesclar a ramificação antiga na nova ramificação manualmente.
- Clone o repositório e
cdno seu diretório. - Confira a nova ramificação padrão com
git checkout main(semainfor sua nova ramificação padrão). - Crie uma nova ramificação para integrar as duas ramificações com
git checkout -b integrate. - Mescle a ramificação padrão antiga com
git merge master(semasterfor sua ramificação padrão antiga). - Faça o push da nova ramificação e, em seguida, abra um pedido de pull e conclua-o na nova ramificação padrão.
- O pipeline de espelhamento deve então cuidar de espelhar a confirmação de mesclagem de volta ao padrão antigo.