Eu sou muito novo no git e gostaria de saber se algo assim é possível?
>git log --pretty=oneline --abbrev-commit
2f05aba Added new feature
3371cec Fixed screw up <-- I want to remove this
daed25c Screw up <-- and remove this.
e2b2a84 First. So it's like they never happend.
Isso é possível?
Se você realmente deseja excluí-los (apagando-os da história, para nunca mais serem vistos), você pode
executar rebase:
e então, apenas exclua (ou comente) as linhas correspondentes aos commits que você deseja excluir, assim:
fonte
git push origin HEAD --force
git revert
. O que, quando você pensa sobre isso, é sensato porque se você puxou o código de outra pessoa, você não gostaria que ela fosse capaz de apagar seus antigos commits sem algum tipo de histórico, não é?d
oudrop
é o comando para remover commits do histórico.Para deletar completamente o (s) commit (s), há uma nova opção
drop
para rebases interativo do git agora. Primeira corrida:Em seguida, substitua
pick
pordrop
para que os commits sejam descartados:Isso funcionou no Fedora para mim com a seguinte versão:
fonte
Squash é útil quando você deseja gerar uma lista de commits mesclados em um único hash, mas se você está procurando pegar três commits separados e ter uma saída final que pareça ser um único commit, eu recomendo
fixup
git rebase -i HEAD~4
Você pode encontrar mais informações na lista de comandos da IU do rebase interativo.
fonte