-
-
Save reginadiana/d69472636beba3440a65a85cdecea839 to your computer and use it in GitHub Desktop.
Git é um sistema de controle de versão, copiando arquivos quando forem modificados e Github é como se fosse uma comunidade para desenvolvedores compartilharem seus códigos e projetos.
Hash é um número que identifica um commit.
A estrutura de um comando git é:
git ação modo
As ações podem ser add
, remove
, rebase
, etc. Já o modo seria uma especie de "argumento", podendo ser um arquivo ou algum parametro posterior a um -
ou --
. Esse modo pode ser passado tanto de forma curta ou extensa, por exemplo, git add -f
é o mesmo que git add --force
git init
Inicia um repositório
git config --global user.name "seu nome"
define um username
git config --global user.email "seu nome"
define um email
git config user.name
mostra o username configurado
git config user.email
mostra o email configurado
Usamos o git add
para separar os arquivos que queremos mandar para um commit.
git add nome_do_arquivo.ex
adiciona um arquivo à árvore
git add .
adiciona todos os arquivos modificados à árvore
git add . --force
adiciona todos os arquivos modificados, incluindo os ignorados pelo .gitignore
git add . --no-all
adiciona todos os arquivos modificados, exceto aqueles que foram deletados
Untracked | Unmodified | Modified | Staged |
---|---|---|---|
Arquivo criado mas não reconhecido pelo Git | Arquivo reconhecido pelo git | Arquivo modificado mas não foi salvo | Arquivo pronto para ser salvo |
Se voltarmos um commit, o arquivo passa para o estado Unmodified
git status mostra o estado dos arquivos do projeto
git commit -m "mensagem do commit" adiciona arquivo no estado staged
git log --decorate e git log servem para visualizar as modificações feitas, datas comentários, autor das modificações, etc.
git log --author="" lista todos os commits realizados por uma determinada pessoa.
git shortlog visualiza todos os commits de todos os autores do projeto em um diretório.
git shortlog -sn visualiza a quantidade de commits por cada autor.
git diff mostra o arquivo com a parte modificada em destaque antes de ser levado ao commit.
git diff --name-only mostra o nome do arquivo modificado
git checkout apaga a ultima modificação se feita antes de adicionar ao git.
git add <arquivo>
), podemos usar git reset HEAD <arquivo>
para retirá-lo desta fila.
git commit -am "comentário" realiza o commit de todos os arquivos modificados
git reset --soft ele pega um código modificado e retorna ppara a fila de commits, mantendo o que foi modificado. O hash eescolhido deve ser pelo menos um anterior ao atual, pois justamente o hhash atual não existirá mais.
git reset --mixed o arquivo é mantido com as modificações e é enviado para o estado Untracked.
git reset --hard {hash} o arquivo não não é mantido com as modificações e é enviado para o estado Untracked.
git reset --hard desfaz todas as mudanças de arquivos commitados
git clean -fd desfaz todas as mudanças de pastas e arquivos que ainda não foram adicionados
Usamos esse recurso quando queremos deixar um arquivo de lado por um tempo, ou seja, quando vamos migrar os arquivos de uma branch para a outra mas existe um arquivo modificado em desenvolvimento.
git stash
Lista os arquivos guardados
git stash list
git stach show <numero> -p
git stach clear
git stach show <numero> --stat
git stash apply
git stash pop
git stash save "mensagem de commit que fica fora da arvore"
Baixa as referencias de uma branch
git fetch origin <branch>
Mergea e deleta branchs que não estão no repositório remoto
git fetch origin -p
git fetch -p
Usamos isso para criar comandos mais curtos. Para definir basta usar:
git config --global alias.*comando desejado* *comando a ser simplificado*
Exemplo: git config --global alias.s status
Para chamar o "novo comando", basta usar:
git s
Para gerar uma tag, podemos usar:
git tag -a <versão> -m "mensagem opcional de versionamento"
Para gravar essa tag, precisamos subi-lá:
git push origin <branch> --tags
Para listar as tags criadas:
git tag
Rebase é uma forma de unir branchs de uma forma sequencial, se tornando uma boa opção durante o desenvolvimento.
Vantagem: Evita um commit extra para realizar o merge
Desvantagem: Muda o histórico, gerando confusão entre os desenvolvedores
Para atualizar uma branch com rebase:
git pull --rebase origin <branch>
Para chamas as branchs remotas, use:
git fetch
ls-la lista os repositórios
git remote add origin Adiciona um repositório remoto
📝 Para sair do editor vi e salvar o que foi escrito usamos as teclas :wq e enter
Como configurar ssh do github na maquina
Criando a ssh key
ssh-keygen -t ed25519 -C "<YOUR_GITHUB_EMAIL>"
eval "$(ssh-agent -s)"
Copie a chave publica
cat ~/.ssh/id_ed25519.pub
Cole o conteudo em Settings > SSH and GPT Keys:
Clone o repositorio com ssh
git clone git@github.com:reginadiana/bikcraft.git