Articles of git

Combinando múltiplos commits antes de empurrar no Git

Eu tenho um monte de commits no meu repository local que são tematicamente semelhantes. Eu gostaria de combiná-los em um único commit antes de empurrar para um controle remoto. Como eu faço isso? Eu acho que o rebase faz isso, mas não consigo entender os documentos.

Remover twigs de rastreamento não mais no controle remoto

Existe uma maneira simples de excluir todos os ramos de rastreamento cujo equivalente remoto não exista mais? Exemplo: Filiais (locais e remotas) mestre origem / mestre origem / bug-fix-a origem / bug-fix-b origem / bug-fix-c Localmente, só tenho um branch master. Agora eu preciso trabalhar em bug-fix-a , então eu faço check-out, trabalho nele e […]

Como atribuir um Git SHA1 para um arquivo sem o Git?

Pelo que entendi, quando o Git atribui um hash SHA1 a um arquivo, este SHA1 é exclusivo do arquivo com base em seu conteúdo. Como resultado, se um arquivo for movido de um repository para outro, o SHA1 do arquivo permanecerá igual ao seu conteúdo, que não foi alterado. Como o Git calcula o resumo […]

Como pesquisar em todos os commits do Git e do Mercurial no repository de uma certa string?

Eu tenho um repository Git com poucas ramificações e commits pendentes. Eu gostaria de pesquisar todos os commits no repository para uma string específica. Eu sei como obter um log de todos os commits na história, mas estes não incluem ramificações ou blobs pendentes, apenas a história do HEAD. Eu quero pegá-los todos, para encontrar […]

Force LF eol in git repo e cópia de trabalho

Eu tenho um repository git hospedado no github. Muitos dos arquivos foram inicialmente desenvolvidos no Windows, e eu não fui muito cuidadoso com os finais de linha. Quando realizei o commit inicial, eu também não tinha nenhuma configuração do git para impor finalizações de linha corretas. O resultado é que eu tenho um número de […]

Como esmagar commits no git depois de terem sido empurrados?

Isto dá uma boa explicação de esmagar múltiplos commits: http://git-scm.com/book/en/Git-Branching-Rebasing mas não funciona para commits que já foram enviados. Como faço para esmagar os poucos commits mais recentes em meus repositorys locais e remotos? EDIT: Quando eu git rebase -i origin/master~4 master , manter o primeiro como pick , defina os outros três como squash […]

Como dizer ao git para ignorar linhas individuais, isto é, gitignore para linhas específicas de código

.gitignore pode ignorar arquivos inteiros, mas existe uma maneira de ignorar linhas específicas de código durante a codificação? Eu freqüentemente e repetidamente adicionar as mesmas linhas de debugging em um projeto, apenas para ter que lembrar de removê-los antes de cometer. Eu gostaria apenas de manter as linhas no código e tê-las desconsiderado.

Como desfazer “git commit –amend” feito em vez de “git commit”

Eu acidentalmente alterei meu commit anterior. O commit deve ter sido separado para manter o histórico das alterações que fiz em um arquivo específico. Existe uma maneira de desfazer esse último commit? Se eu fizer algo como git reset –hard HEAD^ , o primeiro commit também será desfeito. (Eu ainda não empurrei para nenhum diretório […]

Git no Windows: Como você configura um mergetool?

Eu tentei msysGit e Git no Cygwin. Ambos funcionam bem em si e ambos executam gitk e git-gui perfeitamente. Agora, como diabos eu configuro um mergetool? (O Vimdiff trabalha no Cygwin, mas de preferência eu gostaria de algo um pouco mais amigável para alguns de nossos colegas de trabalho amantes do Windows.)

Mover ponteiro de ramificação para commit diferente sem checkout

Para mover o ponteiro de ramificação de uma ramificação retirada, pode-se usar o comando git reset –hard . Mas como mover o ponteiro de ramificação de uma ramificação sem check-out para apontar para uma confirmação diferente (mantendo todas as outras coisas como ramificação remota rastreada)?