Git Reversão do PR na branch develop

Posted on: August 26, 2025 11:11 AM

Posted by: Renato

Categories: git github gitlab

Views: 54

Reversão do PR 1219-22 na branch develop

Contexto

O Pull Request 1219-22-remove-buttons-for-selecting-support-level foi mergeado na branch develop mas precisou ser completamente revertido, pois as alterações introduzidas não deveriam ser aplicadas na versão atual do projeto. Durante o processo de desenvolvimento, ocorreram vários reverts e reaplicações que criaram uma sequência de commits relacionados, deixando o histórico confuso.


Objetivo

O objetivo principal foi:

  1. Remover todas as alterações do PR 1219-22 da branch develop.

  2. Garantir que a branch permaneça protegida, sem quebrar commits existentes.

  3. Manter o histórico de reverts registrado para auditoria, mas limpar o código da funcionalidade indesejada.


Passo a passo executado

  1. Identificação dos commits envolvidos:

    • Merge original do PR: a5ba6efb

    • Commits de reverts e reapply: c4c9e577, ff475eac, b112f98c, b8fe114e, 9c7502cf

    • Último commit de revert aplicado na develop: 17740d3c

  2. Aplicação de reverts sequenciais:

    • Reverts foram aplicados na ordem necessária para desfazer:

      git revert -m 1 9c7502cf
      git revert b8fe114e
      git revert -m 1 a5ba6efb
      git revert -m 1 ff475eac
      git revert c4c9e577
    • O -m 1 foi usado em merges para indicar que o pai 1 (develop) seria mantido como base.

  3. Sincronização com o remoto protegido:

    • Como a branch develop é protegida, não foi usado --force.

    • Foi feito git pull --rebase origin develop para trazer commits remotos antes do push.

    • Depois, os reverts foram empurrados normalmente:

      git push origin develop
  4. Resultado:

    • O código referente à branch 1219-22 não existe mais na develop.

    • O histórico ainda contém os commits antigos e os reverts, garantindo rastreabilidade.

    • A branch develop continua protegida e sincronizada com o remoto.


Observações importantes

  • Qualquer trabalho futuro relacionado à 1219-22 deve ser feito em uma nova branch criada a partir da develop atual.

  • Recomenda-se criar novos commits ou cherry-pick seletivo da branch antiga, evitando merges diretos que tragam novamente os commits revertidos.

  • O histórico do Git permanece para auditoria, mas o código indesejado foi removido.

 

Guia Rápido: Reversão do PR 1219-22 na develop

Objetivo

Remover todas as alterações do PR 1219-22-remove-buttons-for-selecting-support-level da branch develop sem quebrar o histórico da branch protegida.


1️⃣ Identificar os commits relacionados

Use git log --oneline --grep="1219 22 remove buttons" para listar todos os commits do PR, incluindo merges e reverts.
Exemplos de commits relevantes:

a5ba6efb  Merge PR #1258
c4c9e577  Revert "1219 22"
ff475eac  Merge PR #1259
b8fe114e  Reapply "1219 22"
9c7502cf  Merge PR #1260
17740d3c  Revert "Reapply 1219 22"

2️⃣ Aplicar os reverts na ordem correta

Execute os comandos de revert para desfazer as alterações, ignorando commits já revertidos:

git checkout develop
git pull --rebase origin develop  # Sincroniza com remoto

git revert -m 1 9c7502cf || echo "já revertido"
git revert b8fe114e || echo "já revertido"
git revert -m 1 a5ba6efb || echo "já revertido"
git revert -m 1 ff475eac || echo "já revertido"
git revert c4c9e577 || echo "já revertido"
  • -m 1 indica que o pai 1 (develop) será mantido como base.

  • || echo "já revertido" evita erros caso o commit já tenha sido revertido anteriormente.


3️⃣ Resolver conflitos (se houver)

Se algum revert gerar conflito:

git status
# Edita os arquivos conflitantes
git add .
git rebase --continue   # ou git commit, se for merge normal

4️⃣ Publicar alterações no remoto protegido

git push origin develop

✅ Resultado:

  • Todos os commits da 1219-22 foram revertidos.

  • O histórico permanece intacto para auditoria.

  • Branch protegida continua segura.


5️⃣ Trabalhos futuros na 1219-22

Para novas alterações:

  1. Criar uma branch nova a partir da develop atual:

git checkout develop
git pull origin develop
git checkout -b 1219-22-new
  1. Fazer alterações e commitar:

git add .
git commit -m "Novas alterações da 1219-22"
git push origin 1219-22-new
  1. Abrir Pull Request normalmente.

  • Evita conflitos com reverts antigos.

  • Mantém o histórico limpo e rastreável.


 

fluxograma visual simplificado do histórico da branch develop e como os reverts da 1219-22 foram aplicados.


 

Estado inicial da develop:

 

develop

|

• fdb3815 Merge PR #1257 (último commit antes da 1219-22)

 

Merge do PR 1219-22:

|

• a5ba6efb Merge PR #1258 <-- adiciona alterações da 1219-22

• c4c9e577 Revert "1219 22" <-- primeiro revert

• ff475eac Merge PR #1259 (revert intermediário)

• b8fe114e Reapply "1219 22" <-- reaplicação do PR

• 9c7502cf Merge PR #1260 (revert do revert anterior)

• 17740d3c Revert "Reapply 1219 22" <-- último revert aplicado

 

Após aplicação de reverts finais:

|

• develop atualizado

- Todos os commits da 1219-22 foram revertidos

- Branch protegida permanece intacta

- Histórico preservado para auditoria

 


1

Share

Donate to Site


About Author

Renato

Developer

Add a Comment

Blog Search


Categories

Laravel (227) PHP (151) linux (124) Variados (110) ubuntu (58) Dicas (58) developer (48) postgresql (45) database (44) sql (42) Docker (32) mysql (31) front-end (31) devops (26) webdev (24) programming (23) tecnologia (19) eloquent (19) aws (19) dba (18) backend (16) OUTROS (17) laravelphp (16) debian (12) dev (12) git (10) react (10) reactjs (10) 100DaysOfCode (10) PHP Swoole (9) node (9) javascript (9) nginx (9) inteligencia-artificial (9) linux-tools (8) Architecture (8) github (7) ciencia (7) vue (7) jwt (6) vim (6) windows (6) arquitetura (6) nodejs (6) api (6) vscode (6) webservice (6) DevSecOps (5) servers (5) apache (5) macox (5) s3 (5) authentication (5) ia (5) reactnative (5) rest (5) wsl (4) Swoole (4) lets-encrypt (4) query (4) Raspberry (4) angularjs (4) inteligenciadedados (4) Padrao de design (4) artigo (4) google (4) npm (4) openai (4) Kubernetes (4) gitlab (4) opensource (4) mariadb (4) jenkins (4) autenticacao (4) shell (4) mongodb (4) angular (4) jobs (3) websocket (3) ssh (3) bash (3) hardware (3) tests (3) macos (3) web (2) db (3) politica (3) script (3) performance (3) js (3) mysqli (3) Black Hat (3) RabbitMQ (3) educacao (3) intel (3) CMS (2) sail (3) containers (3) json (3) authorization (3) phpswoole (3) ddd (3) blade (3) terminal (3) log (3) mac (3) fedora (3) seguranca (2) auth (2) cron (2) phpunit (2) kube (2) multiple_authen (2) policia (2) neovim (2) golang (2) noticias (2) livros (2) Transcribe (2) ElonMusk (2) redis (2) claude (2) ArchLinux (2) java (2) saude (1) JQuery (2) phpfpm (2) autorizacao (2) monitoring (2) laptop (2) gnome (2) powerbi (2) telefonia (2) nvm (2) imagick (2) maps (2) colors (2) Passport (2) webhook (2) microservices (2) Curisidades (2) Solid (2) zsh (2) Go (2) BigLinux (2) POO (2) LazyVim (2) gource (2) Python (2) Oauth2 (2) android (2) unix (2) magento (2) iot (2) ffmpeg (2) combustivel (2) security (2) bancodedados (2) tailwind (2) homeOffice (2) html (2) openswoole (2) artificialintelligence (2) paypal (1) microg (1) forcas armadas (1) militar (1) fullsta (1) smartphones (1) automacao (1) Monitor (1) zend (1) spaceship (1) PKCE (1) l2tp (1) Glacier (1) laraveloctane (1) Deus (1) binaural (1) gpt (1) bolsonaro (1) privacidade (1) linkedin (1) documentation (1) brain (1) adb (1) nvidia (1) host (1) ecommerce (1) c4-models (1) altadisponibilidade (1) octane (1) lucena (1) http (1) TypeScript (1) chatgpt (1) idiomas (1) eventdrive (1) uuid (1) restfull (1) aplicativo (1) optimization (1) mapas (1) Fetch (1) collections (1) RustLang (1) matematica (1) Filament (1) compactar (1) composer (1) scheduling (1) Asahi (1) pendrive (1) microservice (1) front (1) cor (1) auth (1) modelagemdedados (1) k8s (1) gasolina (1) wsl2 (1) csv (1) soap (1) piada (1) KubeCon (1) zorin-os (1) spring-boot (1) backup (1) playwright (1) Deepin (1) storage (1) benchmark (1) networking (1) Swoole (1) biologia (1) node-red (1) LETSENCRYPT (1) Grunt (1) Diagramas (1) boot (1) haru (1) dracula (1) TrabalhoEmEquipe (1) Brasil (1) queue (1) agi (1) llama (1) hotfix (1) economia (1) transcription (1) cache (1) Amazon (1) October (1) lumen (1) Hyperf (1) replication (1) faceapp (1) vala (1) cloudstack (1) rpi (1) apple (1) oracle (1) iode (1) ffaa (1) vpn (1) MeioAmbiente (1) firefox (1) flow (1) compression (1) athena (1) front (1) wine (1) covid19 (0) services (1) phpjasper (1) models (1) kali-linux (1) geojson (1) yarn (1) picpay (1) Monolith (1) banco (1) PNPM (1) Desenvolvedor (1) Structurizr (1) symfony (1) presenter (1) lider (1) guard (1) tensorflow (1) bootstrap (1) nuance (1) historia (1) dropbox (1) traefik (1) bug (1) akitando (1) llm (1) htm (1) transformers (1) cavalotroia (1) odd (1) m1 (1) Error (1) cinnamon (1) repmgr (1) federal (1) ruby (1) AppSec (1) orm (1) ArquiteturaDeSoftware (1) Passwordless (1) memcached (1) Jesus (1) flutter (1) Migration (1) workflow (1) cqrs (1) kitematic (1) geospacial (1) yeshua (1) data (1) sonarqube (1) Axios (1) pipelines (1) Mozilla (1) kvm (1) GitOps (1) sqlite (1) podcast (1) n8n (1) LaravelFilament (1) God (1) DesenvolvimentoProfissional (1) sw (1) bigtech (1) postgres (1) NoCookies (1) LeetCode (1) governancadedados (1) prf (1) nosql (1) Lideranca (1) Hackers (1) Bots (1) pytorch (1) nuxt (1) liquid (1) ec2 (1) transaction (1) c4 (1) rancher (1) algoritimo (1) Observability (1) Elasticsearch (1) translate (1) certbot (1) Oh My Zsh (1) ibm (1) escopos (1) usb (1) ckeditor (1) API_KEY_GOOGLE_MAPS (1) Manjaro (1) vicuna (1) coding (1) rust (1) markdown (1) JasperReports (1) Fibonacci (1) community (1) Samurai (1) payment (1) messaging (1) controllers (0) OOD (0)

New Articles



Get Latest Updates by Email