quinta-feira, 31 de outubro de 2013

Git: mover branch para um commit

git branch -f

A lista de branchs pode ser obtida por:

git branch

Os commits podem ser listados com:

git-log

Porém, o comando acima não lista todos os commits, apenas os commits da branch corrente. Os commits que não são filhos de nenhuma branch podem ser listados com:

git-reflog --all

O --all lista todos os commits de todas as branchs.

git add interativo

É possível selecionar quais blocos de alteração (conhecidos no git como "hunks") serão colocados no índice para o próximo commit através do comando:

git add -p [nome do arquivo, caso nenhum seja informado, todos os arquivos são verificados]

Acho que é possível informar mais de um nome de arquivo nesta opção, mas não testei (se alguém testar me diga, por favor :-) ).

Este comando abre uma interface bem simples para quem está acostumado com a linha de comando dos SOs da família *nix. Os comandos mais frequentes nesta interface são:

y: inclui o hunk atual no índice
n: não inclui o hunk atual
q: finaliza a interface, mantém os hunks já adicionados
?: ajuda

domingo, 4 de agosto de 2013

Montando um pen drive do Mac OS no Ubuntu com permissões de escrita e tudo o mais!

Quem usa um pen drive em uma Mac OS e Linux já deve ter enfrentado este problema: se formatar como ext* não abre no Mac, se formata em HFS no Mac depois não tem permissão de escrita no Linux. Uma alternativa (poir do que as duas anteriores) é formatar NTFS, aí dá pra ler e gravar nos dois SOs (e no Windows, se é que isso conta como vantagem), mas as flags de permissão simplesmente não existem nesse sistema de arquivos, isso causa problemas com programas como o git, por exemplo (pra ser suscinto).
Como resolver este problema então?
A alternativa mais simples que encontrei foi formatar o pen drive como hfs+ no Mac e depois forçar a permissão de gravação no Linux. Consigo ler e gravar nos dois SOs (não testei, mas é 99% de certeza que no Windows não vai nem montar o pen drive) e mantenho as flags de permissão.
Para montar o pen drive hfsplus no Linux com permissão de gravação basta apenas usar um -o force no mont. A minha linha de comando ficou assim:

mount -t hfsplus -o force /dev/sdc1/ /media/pendrive

Encontrei esse macete aqui:

http://ubuntuforums.org/showthread.php?t=1660958

Lá o cara fala pra instalar os pacotes hfsplus, hfsprogs e hfsutils. Consegui rodar o comando sem isso, pois provavelmente o Debian já vem com esse suporte (os pacotes não estavam instalados quando rodei o comando) e em algumas distros apenas rodar o comando acima não funcione.