Git - principais comandos: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Linha 132: Linha 132:
Segui as instrucoes em Creating Multiple Repositories
Segui as instrucoes em Creating Multiple Repositories
da pagina  https://sourceforge.net/apps/trac/sourceforge/wiki/Git
da pagina  https://sourceforge.net/apps/trac/sourceforge/wiki/Git
* Tenho 4 repositorios dentro do projeto siptoolbox: animal,simpletoolbox,www e siptoolbox
* Dentro do shell do sourceforge:
mkdir animal simpletoolbox www
git --git-dir=www init --shared=all --bare
este ultimo comando sendo repetido para animal e simpletoolbox.


Em seguida, dei um clone em cada um, depois, para cada modulo (p.ex. www abaixo), editei cvs2git.options colocando o caminho apropriado na string logo apos run_options.set_project
cvs2git --options=../cvs2git.options
cd www
cat ../cvs2svn-tmp/git-{blob,dump}.dat | git fast-import
git reset --hard
git push origin master
rm -rf ../cvs2svn-tmp


Eh isso ae, mais ou menos..
=== Referencias de migracao CVS para Git ===
=== Referencias de migracao CVS para Git ===
* [http://michael-bien.com/mbien/entry/converting_from_cvs_to_git]
* [http://michael-bien.com/mbien/entry/converting_from_cvs_to_git]

Edição das 23h05min de 8 de agosto de 2011

Mostra as configurações

git config --list

Mostra o valor do [atributo]

git config [atributo]

Adiciona o [arquivo] para ser enviado no próximo commit

git add [arquivo]

Mostra o status do commit atual

git status

Mostra as mudanças realizadas nos arquivos do commit atual

git diff

Realiza o commit

git commit
    -m "mensagem"    // coloca essa mensagem a respeito do commit
    -v               // coloca a mensagem padrão do git mais o que foi mudado em cada arquivo

Remove um arquivo

git rm
    --cache          // tira dos arquivos do próximo commit, o contrário de git add

Mostra todos os commits

git log
   --all                   // mostra todos os commits
   --pretty=oneline        // um em cada linha
   --max-count=2           // mostra até dois commits
   --since=5.minutes       // commits desde 5 minutos atrás
   --until=5.minutes       // commits de até 5 minutos atrás
   --author=[nome]         // commits apenas do autor [nome]
   --graph                 // usa modo "gráfico"

Assim como diz no tutorial, é legal utilizar esse comando


git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short

// então defina um atalho no teclado, com o comando

git config --global alias.[atalho]='log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short'

// agora ao digitar git [atalho] você terá o mesmo que se digitasse
// git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short

Volta a versão especificada pela hash

git checkout [hash]

Desfaz as mudanças feitas no [arquivo]

git reset HEAD [arquivo]

Volta para o estado desta hash

git reset [hash]

"Refaz" último commit

git commit --amend

Desfaz último commit

git revert HEAD

Dá uma tag para o hash atual

git tag [nomeDaTag]
    -d            // apaga um determinado tag

Cria um novo branch

git checkout -b [branchName]

Combina o hash atual com o mencionado

git merge [hash]

Lista todos os branches

git branch

Dá um update no seu clone

git fetch

git pull    // git fetch + git merge origin/master

Refaz um branch que existia na origem

git branch --track [branchName] origin/[branchOriginName]

Dá um upload das suas modificações

git push [remoteName] [branchName]

Cria um patch

git format-patch master --stdout > nomeDoPatch.patch


Canal do IRC sobre Git

  1. git ou #github no freenode

Migrando um Repo CVS para Git

Exitem diversas maneiras de se converter um repositorio existente para Git. Se o repositorio principal nao sera convertido para Git, pode-se usar o git cvs. Nesse caso, veja o link: https://sourceforge.net/apps/trac/vxl/wiki/GitCvs

Ver tambem o seguinte link, para o caso de se usar Git com Subversion: https://sourceforge.net/apps/trac/vxl/wiki/GitSvn

Agora, para migrar o repositorio CVS para Git de uma vez por todas, vou descrever um jeito que usei para converter o SIP, o qual tinha um repositorio CVS no sourceforge. Primeiramente, usei o seguinte comando de backup do sourceforge pra baixar o repo CVS:

 rsync -av rsync://siptoolbox.cvs.sourceforge.net/cvsroot/siptoolbox/* .


Segui as instrucoes em Creating Multiple Repositories da pagina https://sourceforge.net/apps/trac/sourceforge/wiki/Git

  • Tenho 4 repositorios dentro do projeto siptoolbox: animal,simpletoolbox,www e siptoolbox
  • Dentro do shell do sourceforge:
mkdir animal simpletoolbox www
git --git-dir=www init --shared=all --bare

este ultimo comando sendo repetido para animal e simpletoolbox.

Em seguida, dei um clone em cada um, depois, para cada modulo (p.ex. www abaixo), editei cvs2git.options colocando o caminho apropriado na string logo apos run_options.set_project

cvs2git --options=../cvs2git.options
cd www
cat ../cvs2svn-tmp/git-{blob,dump}.dat | git fast-import
git reset --hard
git push origin master
rm -rf ../cvs2svn-tmp

Eh isso ae, mais ou menos..

Referencias de migracao CVS para Git