Formação Oracle DBA Completa


Conhecendo os super poderes dos comandos Git e GitHub

Conhecendo os super poderes dos comandos Git e GitHub

5 de agosto de 2016 1 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
Siga os bons!

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.

Últimos posts por Ramos de Souza Janones (exibir todos)

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



Frontend Do Zero Ao Profissional