Tenho git repo com dois branches não relacionados, master e configs. Criei configurações, limpei todos os arquivos e coloquei apenas nos arquivos de configuração. Agora eu quero empurrar isso no repositório remoto, mas como se fosse um novo branch vazio (sem registros de todas as minhas alterações e revisões antigas do branch original).
Como posso limpar todo o histórico e empurrá-lo?
Respostas:
Limpar todos os arquivos não elimina o histórico. Você precisa primeiro criar um branch sem histórico e adicionar seus arquivos de configuração. Hoje em dia
git checkout
tem uma--orphan
opção que faz uma filial sem histórico. Aqui estão as informações sobre a--orphan
opção:Aqui está um link para a documentação de check-out . Você também pode correr
git help checkout
também.Depois de criar seu branch sem histórico, quando você o enviar para o servidor, ele também não terá esse histórico. FWIW, isso me ajuda a pensar
git push
como "fazer o branch remoto parecer igual ao meu local". Portanto, se você tiver história e empurrar, terá história. Se você não fizer isso, o branch enviado não.fonte
Como posso limpar todo o histórico e empurrá-lo?
Então você pode executar o seu
cf. este one-liner
fonte
Eu precisava fazer isso para enviar a um freelancer algum código sem compartilhar informações privadas ou excluir meu histórico.
Caso algum de vocês esteja usando SourceTree, é assim que consegui fazer. Informe se eu fiz algo errado ou me esqueci de algo, pois não estou familiarizado com o gerenciamento de controle de origem.
Quando verifiquei o bitbucket, parece que isso funcionou e descartou meu histórico de commits.
Espero que isso ajude alguém.
fonte