Empacotando commits com tar ou zip

Muitas vezes me pego querendo empacotar meus commits para poder reaproveitá-los novamente depois, ou mesmo apenas para mandar pra alguém ou anexá-lo ao ticket no sistema.

Depois de algumas pesquisas, conheci alguns comandos bem legais que compartilho aqui com você.

Como sabemos, todo commit tem um SHA único, que pode ser visto com o comando git status. Com o SHA do nosso commit em mãos, temos os seguintes comandos:

1. Listando arquivos alterados em um determinado commit:

git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT SEU_SHA

2. Criar um .TAR com todos os arquivos alterados de um commit, mantendo a estrutura de pastas:

git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT SEU_SHA | xargs tar -rf mytarfile.tar

3. Criar um .ZIP com mais de um commit envolvido:

git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT SEU_SHA | xargs zip -r0 meuarquivo.zip $1

 

Fica a dica.. :)

Compartilhe com os amigos
  • Digg
  • StumbleUpon
  • Print
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Google Buzz
  • LinkedIn
  • Live
  • MSN Reporter
  • Orkut
  • PDF
  • Reddit
  • Tumblr
Publicidade

Ninguém comentou sobre isso ainda. Seja o primeiro.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *