Git, fluxo de trabalho de solicitação pull do TFS

Git, fluxo de trabalho de solicitação pull do TFS

Aqui está o fluxo de trabalho que estou tentando, depois de assistir a esteVídeo Git/TFS.

Então eu crio um branch do meu branch de desenvolvimento

$ git checkout -b my-feature-branch development

Em seguida, faço uma alteração, preparo, confirmo e envio as alterações para o servidor TFS.

Agora, quando vou para a interface da web do TFS, tenho um "my-feature-branch" no servidor.

Clico em "Nova solicitação pull" e crio um PR em desenvolvimento e aceito este PR. Este processo exclui o "my-feature-branch" no servidor TFS, mas permanece na minha máquina local.

Tudo está ótimo neste momento.

De volta à minha máquina local, saia do ramo de recursos:

git checkout development

Exclua a filial local

  git branch -d my-feature-branch

warning: deleting branch 'my-feature-branch' that has been merged to
         'refs/remotes/origin/test-pr', but not yet merged to HEAD. Deleted branch my-feature-branch (was d525adc).

Receber as últimas -

git pull -p

Às vezes, e posso estar fazendo o pull antes da exclusão, a exclusão falha e tenho que forçar a exclusão.

git branch -D my-feature-branch

Meu fluxo de trabalho está errado? Devo fazer algum tipo de mesclagem antes da exclusão? Por que o git não sabe que o branch do recurso foi mesclado como uma solicitação pull após o pull e me permite excluir sem erros?

Responder1

Por que o git não sabe que o branch do recurso foi mesclado como uma solicitação pull após o pull e me permite excluir sem erros?

É difícil saber pelas informações que você forneceu, mas aqui estão duas suposições:

  1. Tem certeza de que está puxando antes de excluir a ramificação do recurso local? Caso contrário, é claro que o branch principal não terá os novos commits.

  2. Como você está mesclando o ramo de recursos? Com uma mesclagem regular ou uma mesclagem de squash? Uma mesclagem regular incorpora os commits do branch de recursos no branch principal, para que o Git saiba que está tudo lá. Uma fusão de squash, OTOH, incorpora todos oscontentedo branch do recurso, mas faz isso criando um novo commit, e o Git não rastreia o fato de que o novo commit compactado foi gerado a partir dos commits do branch do recurso, então ele não pensa que o branch do recurso foi mesclado.

(Eu recomendo fortementenãousando mesclagens de squash. Manter os commits originais, como faz uma mesclagem padrão, ajuda a fazer o Git funcionar melhor.)

informação relacionada