Conhecendo os super poderes dos comandos Git e GitHub

Conhecendo os super poderes dos comandos Git e GitHub

5 de agosto de 2016 0 Por Ramos de Souza Janones
Powered by Rock Convert

Este é um Guia com seleção de comandos para o Trabalho com Git e GitHub.

Guia simplificado

1 Configurações iniciais do Git

Baixando e instalando o Git

https://git-scm.com/downloads

Configura nome de usuário

git config --global user.name nome-sobrenome

Configura email de usuário

git config --global user.email email@email.com.br

2 Inicializando um repositório

Inicializa o versionamento no respectivo diretório

git init

3 Comandos básicos para sobreviver

Verifica o status do repositório

git status

Adiciona todos os arquivos para serem commitados

Curso completo de Games, inclusive Realidade Aumentada.Powered by Rock Convert
git add .

Commitando arquivos

git commit -m "inseir um comentário significativo"

Visualizando relatório de commits

git log // todos os commits
git log --oneline // exibe log com hash e título do commit

Enviando as modificações para o repositório remoto

git push origin <branch>

Puxando alterações do repositório remoto

git pull origin <branch>

4 Trabalhando com branchs

Criando e locomovendo-se para uma nova branch

git checkout -b nome-branch 

Aplicando merge em branchs

git merge nome-branch // precisa estar na branch de destino

Visualizando todas as branches existentes no repositório

git branch

Deletando uma branch

git branch -D nome-branch


Configurações

Obs1: (Exemplo Windows) Acesse o menu iniciar, localize o ícone do Git Bash, clique com o direito do mouse e em propriedades altere para o local onde normalmente ficam os seus projetos. Exemplo: D:\xampp\htdocs

Curso de PHP ERP com NFe.

Obs2: No Git Bash a maioria dos comandos são inicializados com $, no entanto são inseridos automaticamente pela ferramenta. Por este motivo ocultei nos exemplos abaixo.

1 Locomovendo-se pelas pastas do projeto

cd nome-da-pasta

cd .. // Retorna 1 nível

cd - // Retorna para a pasta que estávamos anteriormente

2 Retorna o caminho da pasta atual

pwd

3 Abre o Windows Explorer

explorer

4 Abre o Explorer do Windows na pasta que estamos atualmente

explorer .

5 Configura nome de usuário

git config --global user.name nome-de-usuario

6 Configura email de usuário

git config --global user.email email@email.com.br

7 Configura editor padrão

git config --global core.editor nome-editor

8 Configura a mergetool (meld)

git config --global merge.tool meld

9 Edita configurações globais

git config --global -e

// Exemplo editor = atom --wait

10 Armazena senha (https)

git config --global credential.helper cache

11 Remove senha armazenada (https)

git config --global --unset credential.helper

12 armazena senha temporariamente (https)

git config --global credential.helper 'cache --timeout=3600' // (3600 segundos = 1 hora)

13 Remove configuração setada

git config --global --unset propriedade
git config --global --unset core.editor // exemplo
git config --global --unset user.email // exemplo

14 Visualiza as configurões de usuário

git config -l

15 Visualiza as configurões de usuário

git config --list

16 Verifica versão do git bash

git --version

Criando e versionando repositórios

2.1 Criando Repositório

mkdir nome-do-repositorio

2.2 Iniciando o Versionamento neste repositório

git init

2.3 Criando arquivos através do terminal

touch nome-aquivo.extensao

2.4 Listar o controle de diretório

ls -a

2.5 Verifica arquivos existentes no projeto

ls -la

2.6 Verificar Status do repositorio

git status

2.7 Separando arquivos para não serem versionados

psds/ (diretório)
alteracoes.php
anotacoes.txt
*.orig. // arquivos gerados pela merge toll

Trabalhando com arquivos na working directory

1 Adiciona aquivos para serem commitados

1. maneira: git add nome-do-aquivo.extensao

2. maneira: git add *.extensao

3. maneira: git add . //add todos

4. maneira: git add --all //add todos incluindo deletados

2 Removendo arquivo da Working Directory

git checkout nome-arquivo.extensao

3 Removendo arquivo com status “deleted” da arvore

git rm nome-file.extensao

4 Removendo arquivo(s) com status “deleted” da arvore

git add --all

5 Deletando todos os arquivos da arvore e do projeto

git rm -rf . ( CUIDADO )

6 Removendo pastas da arvore

git rm -r nome-diretorio

7 Removendo pastas da staged area e git directory

git rm -rf nome-diretorio/ --cached

Trabalhando com arquivos na stage area

1 Visualizando a última alteração feita

git diff // no diretório de trabalho (compara Work Directory com Staging Area)

git diff --staged // na staged area (compara Staging Area com .Git Directory)

git diff nome-arquivo.extensao // Visualiza alterações específicas de um commit

git diff -w // Visualiza alterações ignorando espaços

2 Revertendo alterações feitas em arquivos (Arquivos que estão na área de trabalho)

git checkout -- nome-do-arquivo.extensao

3 Removendo aquivos da stage area

git reset HEAD nome-do-aquivo.extensao

Trabalhando com branches

1 Criando uma nova branch

git branch nome-branch

git checkout nome-branch // Acessando a nova branch

git checkout -b nome-branch // Criando e acessando uma nova branch (Prefiro esse)

git checkout --orphan nome-branch // Criando uma nova branch vazia

2 Retorna num ponto específico e cria uma nova branch

git checkout hash-commit -b nome-nova-branch

Para encontrar o hash, você precisa rodar no terminal: git log.

O hash é aquele número que aparece em comit: xxxxxxx.

3 Renomeando branches

git branch -m nome-branch

4 Aplicando merge em branches

git merge nome-branch // Precisa estar na branch de destino

5 Visualizando todas as branches existentes no repositório

git branch // A branch corrente será marcada por um asterisco

6 Visualizando todas as branches locais e remotas

git branch -a

7 Deletando uma branch

git branch -D nome-branch

8 Deletando branch remota

git push origin :nome-branch

Gerenciando Repositórios

1 Pesquisa de texto em todos os diretórios

git grep termo-da-busca

2 Visualizando relatório de commits

gitk // Visualize os Commits numa interface gráfica

git log // Todos os commits

git log -p // Commits realizados + Diff

git log -p -3 // Commits realizados + Diff com limitação de exibição

git log --stat // Resultado com estatistica

git log --name-status // Visualiza status de todos os arquivos que foram modificados

git log --oneline // Exibe log com hash e título do commit

git log --pretty=oneline // Visualizando somente o código e mensagem de cada commit

git log --abbrev-commit // Abrevia hash-commit

git log --pretty=oneline --abbrev-commit // Resulta em linha única com hash-commit abreviada

git log --pretty=format:"%h - %an, %ar : %s" // Resultado personalizado com hash - autor - tempo - titulo-commit

3 Visualizar número de commits por usuário

git shortlog -s

4 Visualizar alterações feitas depois do último commit que ainda não foram stageadas

git diff

5 Visualizar alterações feitas depois do último commit que já foram stageadas

git diff --cached

6 Identificando User que fez alterações em determinado arquivo

git blame nome-arquivo

Trabalhando com Git e GitHub

1 Gerando uma chave SSH de autenticação no Git bash

// Gerando as chaves pública e privada
ssh-keygen

// Localize a chave em "Meus Documentos"

Abra o arquivo ".ssh > id_rsa.pub" e copie a chave

2 Verificar se existe chave SSH configurada

ls -al ~/.ssh

3 Configurando a chave SSH no GitHub

// Insira um nome para identificar a sua máquina no Github

// No Github vá em "Settings > SSH Keys" (Title + Key)

4 Verificar qual chave SSH está setada

ssh -T

5 Crie um repositorio no GitHub

Acesse "Repositories" > New

6 Clonando o repositório para a sua máquina

No Github copie a URL SSH

No gitBash (git clone + url-repositorio)

7 Inserir caminho do repositorio remoto

git remote add origin url-repositorio // origin é o nome do repositório remoto

8 Remover caminho do repositorio remoto

git remote rm origin // origin é o nome do repositório remoto

9 Verificar caminho do repositorio remoto que está setado

git remote -v

10 Exibir informações sobre o repositório remoto

git remote show origin

11 Altera a url do repositório remoto (Máquina local > Github)

git remote set-url origin url-repositorio

12 Adicionando mais de um repositório remoto

git remote add <nome repositorio> <url repositorio>

Exemplo: 
git remote add github git@github.com:theandersonn/comandos-git.git
git remote add bitbucket git@github.com:theandersonn/comandos-git.git

13 Renomeando repositório remoto

git remote rename <nome atual> <novo nome>

14 Enviando as modificações para o GitHub

git push origin <branch>

15 Deletando branch remota

git push origin nome-branch --delete
git push origin :nome-da-branch

16 Baixando as modificações do GitHub para a sua máquina (Se o repositório for de sua autoria)

git pull origin <branch>

17 Baixando o conteúdo de uma branch remota e locomovendo-se para esta nova branch

git checkout -b <branch> origin/<branch>

18 Forçando git pull (Os arquivos que estão locais serão subscritos)

git fetch --all
git reset --hard origin/<branch>
git pull origin <branch>

19 Mantendo o Repositório Forkado atualizado com o original

// Nesse momento o nosso repositório chama-se origin;
// Vamos criar um novo chamado "upstream" que apontará para o original.

git remote add upstream insira-url-ssh-do-repositorio-original

20 Sincronizando os dois repositórios (upstream e original)

git fetch upstream

21 Aplicando merge nas atualizações do fork para a branch master do nosso repositório

git merge upstream/master

22 Fechar issues através de commits

git commit -m "Mensagem commit - fix issue IDIssue"

O ID da Issue você consegue na URL da mesma. Ex.: issues/8 – 8.

Outras palavras chave que podemos usar para fechamento de Issues: fix, fixes, fixed, close, closes, closed, resolve, resolves, resolved

Trabalhando com Git no Servidor

8.1 Iniciar versionamento no servidor

git init --bare

8.2 Clonando repositório do servidor

git clone file:////nome-servidor/pasta-desenvolvimento/nome-repositorio

8.3 Consultando nome do remoto (por padrão chama-se origin)

git remote

8.4 Enviando arquivos/modificações para o servidor

git push origin <branch>

Trabalhando com Git Flow

Git Flow

Aqui é apenas um resumo
Nem todos os comandos disponíveis estão cobertos aqui, apenas os mais importantes deles

O que é?

O git-flow é um conjunto de extensões para o git que provê operações de alto-nível para repositórios usando o modelo de branches do Vincent Driessen
Você pode continuar a usar o git e todos os comandos dele normalmente como você já conhece, o git flow é apenas uma coleção de ferramentas

Em poucas palavras

Uma forma de organização usando branches

Funcionamento

Git Flow é divido em 3 tageamentos:

  • Funcionalidades / Feature;
  • Versão / Release;
  • Hotfix

Instalação

Ubuntu/Debian-based

sudo apt-get install git-flow

Mac OS X

brew install git-flow-avh

Windows (Cygwin)

wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash

Ou

https://git-for-windows.github.io/

A partir do Git Windows 2.6.4, GitFlow (AVH) está incluído.

Manual

wget --no-check-certificate -q  https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh && bash gitflow-installer.sh install stable; rm gitflow-installer.sh

Começando com Git Flow

Inicialização Para começar a usar Git Flow em seu projeto, você precisa iniciá-lo

git flow init

Funcionalidade / Features

O desenvolvimento de uma nova funcionalidade começa a partir do ponto atual de seu branch DEVELOP

Começar uma nova funcionalidade

git flow feature start MINHA_FUNCIONALIDADE

Criar um branch (baseado no develop) e automaticamente irá dar uma checkout nesse branch

Finalizando uma funcionalidade

git flow feature finish MINHA_FUNCIONALIDADE

Esse comando irá executar as seguintes ações:
Merge com a branch develop;
Deleta a branch funcionalidade;
Checkout na branch develop;
Para finalizar uma funcionalidade, você deve executar esse comando dentro do branch funcionalidade que deseja finalizar

Publicando uma funcionalidade

git flow feature publish MINHA_FUNCIONALIDADE

Obter uma funcionalidade

git flow feature pull MINHA_FUNCIONALIDADE

Simplesmente um pull de uma branch

Versões / Release

Auxilia a preparação de uma nova versão de produção

Começar uma nova versão

git flow release start MINHA_VERSAO

Cria um branch baseado no develop

Publicando uma versão

git flow release publish MINHA_VERSAO

É sensato publicar o branch da versão depois de criá-lo, para permitir commits por outros desenvolvedores

Finalizar uma versão

git flow release finish MINHA_VERSAO

Na finalização de uma versão, ele executa várias ações:
Faz merge do branch MINHA_VERSAO no MASTER;
Faz merge do branch MINHA_VERSAO e um checkout no DEVELOP;
Etiqueta a versão com seu nome;
Remove o branch MINHA_VERSAO;

Hotfix

Os hotfixes surgem da necessidade de agir imediatamente sobre uma situação indesejada na versão de produção ativa

Criando um hotfix

git flow hotfix start MEU_HOTFIX

Cria um branch baseado no MASTER
O argumento MEU_HOTFIX nesse caso marca a versão defeituosa na produção

Finalizar um hotfix

git flow hotfix finish MEU_HOTFIX

Ele irá fazer um merge no MASTER e no DEVELOP
O merge no MASTER será etiquetado

Resumo dos Comandos

Git Flow Comandos

Fonte

Git-Flow: https://github.com/nvie/gitflow
Documentação: https://danielkummer.github.io/git-flow-cheatsheet/

Outros tutoriais e dicas sobre PHP:

Powered by Rock Convert
Curso de Inglês para Programadores.Powered by Rock Convert

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.
Sumário
Conhecendo os super poderes dos comandos Git e GitHub
Nome do artigo
Conhecendo os super poderes dos comandos Git e GitHub
Descrição
Este é um Guia com seleção de comandos para o Trabalho com Git e GitHub.
Autor
Nome
Ramos da Informática
Logo
LEIA TAMBÉM:  Node.JS: Envie o gemidão do Whastzap para seus amigos via chamada telefônica