Hub documentation
Pull requests e Discussões
Pull requests e Discussões
As solicitações de pull e as discussões do Hub permitem que os usuários façam contribuições da comunidade para os repositórios. As solicitações de pull e as discussões funcionam da mesma forma para todos os tipos de repositório.
Em linhas gerais, o objetivo é construir uma versão mais simples dos PRs e Issues de outros hosts de git (como o do GitHub):
- nenhum fork está envolvido: os contribuidores fazem push para um ramo especial
refdiretamente no repositório de origem. - não há uma distinção rígida entre discussões e PRs: eles são essencialmente a mesma coisa, por isso são exibidos nas mesmas listas.
- eles são otimizados para ML (ou seja, repositórios de modelos/conjuntos de dados/espaços), não repositórios arbitrários.
Observe que as Pull Requests e as discussões podem ser ativadas ou desativadas nas configurações do repositório
Lista
Ao acessar a aba de comunidade em qualquer repositório, você pode ver todas as Discussões e solicitações de pull. Você também pode filtrar para ver apenas as que estão abertas.

Visualizar
A página Discussion permite visualizar os comentários de diferentes usuários. Se for um Pull Request, você pode ver todas as alterações acessando a aba Files changed.

Editando o título de uma Discussão / Pull request
Se você abriu um PR ou uma discussão, é o autor do repositório ou tem acesso de escrita a ele, você pode editar o título da discussão clicando no botão de lápis.
Fixar uma Discussão / Pull Request
Se você tiver acesso de escrita a um repositório, pode fixar discussões e Pull Requests. Discussões fixadas aparecem no topo de todas as discussões.


Bloquear uma Discussão / Pull Request
Se você tiver acesso de escrita a um repositório, pode bloquear discussões ou Pull Requests. Uma vez que uma discussão é bloqueada, os comentários anteriores continuam visíveis e os usuários não poderão adicionar novos comentários.


Edição e moderação de comentários
Se você escreveu um comentário ou tem acesso de escrita ao repositório, pode editar o conteúdo do comentário pelo menu contextual no canto superior direito da caixa de comentários.


Depois que o comentário tiver sido editado, um novo link aparecerá acima do comentário. Esse link exibe o histórico de edições.


Você também pode ocultar um comentário. A ocultação de um comentário é irreversível, e ninguém poderá mais ver seu conteúdo nem editá-lo.

Leia também moderação para ver como denunciar um comentário abusivo.
Posso usar Markdown e LaTeX em meus comentários e discussões?
Sim! Você pode usar Markdown para adicionar formatação aos seus comentários. Além disso, você pode utilizar LaTeX para a composição matemática; suas fórmulas serão renderizadas com KaTeX antes de serem analisadas no Markdown.
Para equações em LaTeX, você deve usar os seguintes delimitadores:
$$ ... $$para o modo de exibição\\(...\\)para o modo inline (sem espaço entre as barras e o parêntese).
Como gerencio solicitações de pull localmente?
Vamos supor que o número do seu PR seja 42.
git fetch origin refs/pr/42:pr/42
git checkout pr/42
# Do your changes
git add .
git commit -m "Add your change"
git push origin pr/42:refs/pr/42Modo de rascunho
O modo rascunho é o status padrão ao abrir uma nova Pull request do zero no “Advanced mode”. Com esse status, outros colaboradores sabem que sua Pull request está em andamento e não pode ser mesclada. Quando sua branch estiver pronta, basta clicar no botão “Publish” para alterar o status da Pull request para “Open”. Observe que, uma vez publicada, você não pode voltar ao modo rascunho.
Excluindo uma referência de Pull request
Quando uma Pull request é fechada ou mesclada, você pode excluir a ref git associada (o branch que armazena os commits da PR) para liberar espaço de armazenamento.
Após fechar ou mesclar um PR, você verá um aviso na parte inferior da discussão mostrando o armazenamento estimado que pode ser liberado ao excluir a ref. Clique no botão “Delete ref” para remover permanentemente a ref git do PR e recuperar o armazenamento.

Isso é especialmente útil quando o branch principal foi compactado (squashed) e arquivos foram removidos posteriormente. Esses arquivos permanecem no histórico do branch do PR, mesmo que não tenham sido adicionados pelo próprio PR, ocupando armazenamento que poderia ser liberado.
Excluir uma ref de PR é irreversível. Uma vez excluída, você não poderá mais buscar ou fazer o checkout dos commits do PR localmente.
Uso avançado de solicitações de pull
Onde no repositório git as alterações são armazenadas?
Nossos Pull requests não usam forks e branches, mas sim “branches” personalizados chamados refs que são armazenados diretamente no repositório de origem.
Git References são o mecanismo interno do git que já armazena tags e branches.
A vantagem de usar refs personalizados (como refs/pr/42, por exemplo) em vez de branches é que eles não são obtidos (por padrão) por pessoas (incluindo o “dono” do repositório) que clonam o repositório, mas ainda podem ser obtidos sob demanda.
Obtendo todos os Pull requests: para magos do git 🧙♀️
Você pode ajustar o seu refspec local para buscar todos os Pull requests:
- Obter
git fetch origin "refs/pr/*:refs/remotes/origin/pr/*"- crie um branch local que acompanha a ref
git checkout pr/{PR_NUMBER}
# for example: git checkout pr/42- Se você fizer alterações locais, para enviar para a ref do PR:
git push origin pr/{PR_NUMBER}:refs/pr/{PR_NUMBER}
# for example: git push origin pr/42:refs/pr/42