Já faz um tempo que queria escrever um artigo, mas sempre acabava esbarrando em algumas "barreiras" que eu mesmo colocava: falta de tempo, dúvida sobre o que escrever, insegurança, etc, etc. 🤔🤔🤔
Mas hoje isso mudou e vou falar de uma ferramenta bem bacana, disponível no Github chamada: pull.
Pull? Wat?
Se você em algum momento já trabalho com controle de versionamento, já deve estar familíarizado com a seguinte rotina: você chega cedo no trabalho, pega seu café, e começa o dia com um git push.
Só que ...
To github.com:MateusAndrade/use-cep-hook.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:MateusAndrade/use-cep-hook.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Claro, o bom e velho git pull
, ou caso você queria dar pull de outra branch com git pull origin minha-branch-topper
já resolveriam seu problema. 😊
Porém, ao usar forks esse processo acaba sendo um pouco diferente.
O que é um fork?
Segundo a própria documentação do Github:
After using GitHub by yourself for a while, you may find yourself wanting to contribute to someone else’s project. Or maybe you’d like to use someone’s project as the starting point for your own. This process is known as forking.
Traduzindo: após uma bom tempo mexendo nos próprios projetos, você pode querer ajudar no projeto de outra pessoa com um "cópia" sua. Esse processo recebe o nome de forking(ou apenas fork).
Em resumo, ao fazer fork de um projeto X você cria uma cópia desse projeto associada a sua conta, algo como SeuNomeDeUsuario/X
.
Atualizando forks manualmente... 💬
Bem, como todo processo processo que já foi automatizado, também existe a maneira manual de fazer o mesmo que pode ser vista aqui.
Em resumo: se trata de trackear a base
do seu fork, usando o comando
git remote add upstream https://github.com/userName/repo.git
Atualizando forks automaticamente 😱
Mas indo ao ponto que vim falar hoje, vamos fazer sobre o pull(bot).
Basicamente é um bot/app Github que trackeia as alterações na base
do seu fork, envia uma PR pro seu fork e faz o merge sem nenhuma interação.
Pra configurar ele na sua conta, basta acessar a url dele na listagem de apps do Github: https://github.com/apps/pull e seguir com o processo de configuração.
Após isso...depois de algumas horas, o bot vai verificar as diferenças entre a base
do seu fork e vai criar uma PR automaticamente. Um exemplo: https://github.com/MateusAndrade/react-native-share/pull/20
Com isso você vai economizar alguns git pull
durante o seu dia. Lembrando, que o bot faz essa atualização após algumas horas.
Fontes:
Top comments (1)
Show de bola! Obrigado por compartilhar.