Skip to content

Dando merge em alterações do PrivacyTools e resolvendo conflitos

LABB edited this page May 24, 2020 · 6 revisions

Alterações importantes podem rolar no projeto original, como a inclusão de novos guias, provedores, serviços, imagens, etc. Os mantenedores da tradução em Português são responsáveis por fundir o código fonte em Inglês a este repositório e fazer as devidas modificações para que tudo permaneça atualizado e traduzido. Todas as etapas descritas abaixo foram testadas no Linux. No futuro, talvez seja necessário separar esta página em várias versões de acordo com diferentes sistemas operacionais.

Etapas Iniciais

  • Certificar-se de que você tem direito de escrita no repositório. Caso não tenha, precisará fazer Pull Requests (será explicado em outra guia).
  • Certificar-se de que consegue rodar o projeto com bundle exec jekyll serve na sua máquina local e acessar o site localmente através do seu navegador.
  • Certificar-se de que você sabe o básico de como utilizar o Git e GitHub.

Branches Fixas

master é a branch padrão e a que não deve conter muitos erros, pois reflete a versão live do site. up-merge é uma branch que será usada como base para resolver conflitos resultantes do merge do projeto PrivacyTools.

Clonando o Repo

  1. Clone o repo do site da iniciativa Privacidade Digital:
    git clone [email protected]:PrivacidadeDigital/privacidade.digital.git
    
  2. Construe o projeto conforme instruído em README.md. No fim desta etapa você terá todas as branches do projeto Português clonadas em seu repositório local e, dependendo do sucesso ao construí-lo, um projeto com um site funcional a partir da branch master.
  3. Verifique os servidores remotos atrelados ao seu repositório com git remote -v. O resultado deverá ser algo assim:
    origin  [email protected]:PrivacidadeDigital/privacidade.digital.git (fetch)
    origin  [email protected]:PrivacidadeDigital/privacidade.digital.git (push)
    

Atualização da Branch up-merge (opcional)

  1. Adicione o repositório remoto do projeto PrivacyTools como upstream (ou outro nome de sua preferência):
    git remote add upstream https://github.com/privacytoolsIO/privacytools.io.git
    
  2. O resultado de git remote -v agora deverá ser:
    origin  [email protected]:PrivacidadeDigital/privacidade.digital.git (fetch)
    origin  [email protected]:PrivacidadeDigital/privacidade.digital.git (push)
    upstream        https://github.com/privacytoolsIO/privacytools.io.git (fetch)
    upstream        https://github.com/privacytoolsIO/privacytools.io.git (push)
    
  3. Você poderá então utilizar o comando git fetch upstream e todas as branches do projeto PrivacyTools irão ser clonadas pro seu repositório local. Confira o resultado de exemplo:
    remote: Enumerating objects: 25, done.
    remote: Counting objects: 100% (24/24), done.
    remote: Compressing objects: 100% (6/6), done.
    remote: Total 11 (delta 9), reused 6 (delta 5), pack-reused 0
    Unpacking objects: 100% (11/11), done.
    From https://github.com/privacytoolsIO/privacytools.io
     * [new branch]      footer     -> upstream/footer
     * [new branch]      master     -> upstream/master
     * [new branch]      orbot      -> upstream/orbot
     * [new branch]      startpage  -> upstream/startpage
    
  4. Atualize a branch master e vá para ela rodando os dois comandos abaixo:
    git pull origin master
    git checkout master
    
  5. A partir da branch master, vá para a branch chamada up-merge com o comando abaixo:
    git checkout up-merge
    
  6. Traga as atualizações da branch master para a up-merge, com o comando abaixo caso necessário (caso haja conflitos, não precisa resolver, basta fazer o commit dos mesmos de forma forçada):
    git merge master
    
  7. Agora você pode dar merge com as modificações do PrivacyTools com a branch up-merge com o comando abaixo (isso provavelvemente gerará muitos conflitos, nos quais você deve ignorar por agora e fazer o commit dos mesmos de forma forçada):
    git merge upstream/master
    
  8. Faça upload dessa atualização de conflitos para o nosso repo com o comando abaixo:
    git push origin up-merge
    

Forçando Commits com Conflitos

Resolvendo Conflitos

Utilização de Branch Auxiliar (opcional)

Atualização da Branch master

Deployment do Site