Git é um sistema de controle de versão de arquivos. Através deles podemos desenvolver projetos na qual diversas pessoas podem contribuir simultaneamente no mesmo, editando e criando novos arquivos e permitindo que os mesmos possam existir sem o risco de suas alterações serem sobrescritas.
É o local onde seu projeto estará armazenado, existem alguns repositórios online gratuitos e os mais conhecidos são: GitHub, GitLab, BitBucket, os dois últimos permitem ter projetos privados gratuitamente.
São uma espécie de solicitação. As issues são utilizadas normalmente, para relatar algum problema ou sugerir uma nova funcionalidade ao projeto.
Para facilitar o trabalho, registrar a demanda de trabalho e gerar um histórico de tudo o que foi feito.
Acesse o seu repositório online e procure a área de Issues e abra uma nova issue, será gerado um número automaticamente com # na frente exemplo: #1 ou #666. Após crie uma branch em seu repositório local com o mesmo número da issue aberta, e ao fazer o commit, mencione a issue no comentário para linka-lo a issue especifica. exemplo:
$ git commit -m "[#numerodaissue]Descrição do commit"
Branches são como os "ramos" de uma árvore e a branch master é como se fosse o tronco, as branches são uma cópia do ramo principal onde você poderá fazer suas alterações sem interferir diretamente na MASTER.
Porque, o servidor pode estar linkado para realizar o deploy automáticamente sempre que houver alguma alteração na master e caso seja enviando algum código incompleto por exemplo, o projeto que está na web ficará com errors.
Antes de criar uma nova branch, você deve observar se o projeto local está na branch master, caso o contrário será criado branch dentro de outra branch. Para criar uma branch no seu repositório local com o numéro da issue digite:
$ git checkout -b "[#numerodaissue]"
Ou para criar a branch com um nome específico digite:
$ git checkout -b nomedabranch
Ao concluir o trabalho nesta branch e adicionar os arquivos e commitar, você deve fazer o push para o repositório, informando o número da issue.
$ git push origin "#numerodaissue"
Após isso, você deve solicitar o Pull (Merge) Request para mesclar suas alterações com o branch master ou develop.
É a ação de solicitar ao Admin do repositório para aceitar a sua contribuição ao projeto, ao solicitar o PR ele ficará pendente aguardando o aceite, assim o Admin poderá revisar o código, verificar se há conflitos, e ele pode aceitar ou não a sua contribuição.
Já pensou se alguém que você não conhece, envia uma alteração para o seu branch master sem passar por uma revisão sua e nessa alteração o "cara" apaga uma parte importante ou todo o seu projeto? Esse é só um exemplo de porquê usar o PR.
Para mais informações vide: Documentação do Git
Feito com <3 por Evando Junior