Uma diferença básica que senti ao usar o git para controle de versão, se comparado com outros que usei antes, como cvs e subversion, é que ele mantém um repositório no local do desenvolvimento. Isso insere mais uma etapa no processo. Nas ferramentas de controle de versão, normalmente o commit
é a etapa final que atualiza o repositório remoto. No git o commit
atualiza o repositório local, onde você está desenvolvendo. Pra sincronizar com o repositório remoto é preciso fazer um push
.
Nos comandos mostrados adotei a sintaxe comum dos manuais de *nix (man).
git init
git clone xxx://seu.site.git/usuario/repositorio
Esse link será fornecido no site.
git pull
git status [<nome>]
git log [<nome>]
O fluxo mais comum de trabalho no dia-a-dia em um repositório já baixado vai ser:
git pull
git add <nome(s)>
git commit [-m “mensagem”] <nome(s)>|-a
git push
Além desse fluxo pode precisar também desses comandos:
git add <nome>
git mv <nome>
git rm <nome>
Podem ser usados para experimentar, para guardar diferentes versões, para trabalho em equipe, para implementar nova funcionalidade e depois integrar com o curso principal, etc. Podem ser vistos como:
Usos do comando branch:
Nota: o comando checkout apenas reaponta a referência HEAD e atualiza a árvore de trabalho de acordo com tal apontamento.
-a
mostrará também os branches remotos):git branch [-a]
git branch <nome do branch>
git checkout <nome do branch>
git checkout -b <nome do branch>
git branch -d <nome do branch>
git reflog
git checkout -b <nome> <sha1>
git log --oneline --graph
push
para o branch específico:push -u origin <branch>
Obtendo um manual sobre o assunto:
$ git help merge
Tipos:
Realizando um merge tipo fast-forward:
# Uma conferida no status das coisas $ git log --online --graph --all $ git chechout master $ git merge featureX $ git branch -d featureX # opcional
Realizando um merge tipo commit
–no-ff
examine the history and state (see also: git help revisions)
bisect Use binary search to find the commit that introduced a bug grep Print lines matching a pattern log Show commit logs show Show various types of objects status Show the working tree status
grow, mark and tweak your common history
branch List, create, or delete branches checkout Switch branches or restore working tree files commit Record changes to the repository diff Show changes between commits, commit and working tree, etc merge Join two or more development histories together rebase Reapply commits on top of another base tip tag Create, list, delete or verify a tag object signed with GPG
collaborate (see also: git help workflows)
fetch Download objects and refs from another repository pull Fetch from and integrate with another repository or a local branch push Update remote refs along with associated objects
'git help -a' and 'git help -g' list available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept.