Fork
- Em inglês: fork (uma bifurcação do caminho, onde a rota se divide em duas — assim como o projeto se separa em duas cópias)
Um fork é uma cópia de um repositório na sua conta, na qual você pode experimentar alterações à vontade sem afetar o projeto original. O fork funciona como uma ponte entre o repositório original e a sua cópia pessoal, permitindo que você abra pull requests para propor alterações ao projeto original.
Por que usar forks?
Forks são muito usados no desenvolvimento open source para contribuir com projetos que pertencem a outras pessoas ou organizações. Ao forkar um repositório, você cria sua própria cópia do projeto, que pode modificar sem afetar a base de código original. Isso permite:
-
Propor alterações: Se você encontrar um bug ou quiser adicionar uma nova funcionalidade a um projeto, pode forkar o repositório, fazer suas alterações e abrir um pull request no repositório original. Os mantenedores podem então revisar suas alterações e decidir se fazem o merge delas no projeto principal.
-
Experimentar livremente: Forks permitem testar novas ideias ou funcionalidades sem se preocupar em quebrar o projeto original. Você pode fazer alterações no seu repositório forkado sem afetar a base de código principal.
-
Colaborar com outras pessoas: Forks permitem a colaboração entre desenvolvedores. Você pode convidar outras pessoas para trabalhar no seu repositório forkado, revisar suas alterações e contribuir com melhorias próprias antes de abrir um pull request no projeto original.
Muitos projetos open source populares já foram forkados e continuaram sendo desenvolvidos pela comunidade. Alguns exemplos notáveis:
-
LibreOffice: Um fork do OpenOffice, o LibreOffice é uma suíte de escritório livre e open source que vem sendo amplamente desenvolvida e aprimorada por sua comunidade.
-
Jenkins: Originalmente um fork da ferramenta de integração contínua Hudson, o Jenkins se tornou um servidor de automação open source amplamente usado.
-
Bitcoin Cash: Um fork da criptomoeda Bitcoin, o Bitcoin Cash foi criado para resolver problemas de escalabilidade e implementar funcionalidades diferentes.
Forks em fluxos de trabalho do Git
Forks têm um papel crucial nos fluxos de trabalho do Git, principalmente no desenvolvimento open source. Um fluxo de trabalho típico com forks pode ser assim:
- Encontre um repositório com o qual você queira contribuir em uma plataforma como o GitHub.
- Faça um fork do repositório para criar sua própria cópia.
- Clone o repositório forkado no seu computador.
- Crie uma nova branch para as suas alterações.
- Faça suas modificações e crie um commit com elas na sua branch.
- Dê um push das suas alterações para o seu repositório forkado.
- Abra um pull request do seu repositório forkado para o repositório original, propondo suas alterações.
- Os mantenedores do repositório original revisam seu pull request, dão feedback e decidem se fazem o merge das suas alterações.
Forks vs. branches. É importante notar que forks são diferentes de branches. Enquanto branches são usadas dentro de um único repositório para gerenciar diferentes linhas de desenvolvimento, forks criam uma cópia separada do repositório inteiro. Forks servem para contribuições externas e colaboração, enquanto branches servem para o desenvolvimento interno e a organização dentro de um repositório.
.gitignoregit checkoutgit configgit taggit worktree