28
loading...
This website collects cookies to deliver better user experience
git config --list
--system
--global
git config
git config --global user.name "nomedousuario"
git config --global user.email "seuemail"
git config --global core.editor "code --wait"
git config user.name
- No caso do nome do usuário.git config user.email
- No caso do e-mail..git/
. Aqui ele constrói algo como uma linha do tempo que armazena cada alteração enviada. Cada alteração guarda um código Hash único que poderá ser chamado posteriormente para consulta dos dados armazenados. Vou detalhar tudo a seguir. Vamos partir para a inicialização e cada etapa será explanada.mkdir git-project
touch index.html
git-project
e dentro dele temos um arquivo chamado index.html
. Vamos imaginar que esse é o nosso super projeto, iremos usa-lo por hora para explicar alguns conceitos.git init
.git/
com subdiretórios para objects
, refs/heads
, refs/tags
arquivos e models. Além disso, cria uma branch vazia sem nenhum commit. (Veremos mais sobre branches em breve).git init
Transforma o diretório atual num repositório Git.git init <directory>
Transforma um diretório especificado num repositório Git.git init --bare
Cria um novo repositório vazio (um repositório para ser usado apenas como um repositório remoto). Esse tipo de init é utilizado em servidores e são considerados apenas repositórios para armazenamento. Ele facilita a troca de informações entre os desenvolvedores. No link a seguir você pode ver um pouco sobre a diferença entre git init e git bare.$ rm -rf .git
e pronto, seu repositório local foi removido..gitignore/
e .gitmodules/
você pode exclui-los também utilizando o comando $ rm -rf .git*
Untracked - O arquivo acabou de ser adicionado mas ainda não foi visto pelo Git
Unmodifier - Quando o arquivo foi visto pelo git mas não foi modificado.
Modified - O arquivo foi modificado.
Staged - Área onde será criada a versão.
Untracked -> Unmodified
Quando adicionamos um arquivo e ele é visto pelo Git e não tem modificações, ele passa a ter o status de unmodified.
Unmodified -> Modified
Quando qualquer alteração no arquivo é executada.
Modified -> Staged
Quando a modificação é salva no Git. Neste momento ela ainda não foi efetivada.
Staged -> Unmodified
Essa alteração se dá quando realizamos um commit, aqui um código hash da modificação é gerada e nosso arquivo está apto a receber novas mudanças do código para um novo commit.
Unmodified -> Untracked
Quando removemos um arquivo.
git status
.git add house.html
. Ele passa para o estágio stage e está pronto para ser commitado.git commit -m "First commit"
git commit
é usado para salvar alterações num repositório local. E esse comando só funciona quando arquivos são inseridos para serem commitados, ou seja, quando passamos esses arquivos para o status staged através do comando git add
.git log
.git diff
. As alterações são listadas conforme a seguir:git status
. Ele exibirá exatamente em qual branch estamos.git branch
.git checkout -b nomedabranch
git checkout -D nomedabranch
. Desse modo, a branch especificada será removida do nosso projeto.git checkout nomeDaBranch
. Assim, iremos trocar a branch ativa.git log
git log
.git commit -m "sua mensagem"
. É importante descrever bem o que foi executado para que posteriormente possamos identificar com melhor precisão um commit em específico.git log --decorate
. git log --author "Nome do Autor"
. Veja o exemplo.git log --graph
, é bem útil caso queiramos ter uma melhor visualização do fluxo de trabalho que estamos executando no projeto. git log shortlog
-sn
na frente do código. Sendo assim, git log shortlog -sn
.git show "código hash da branch"
mostra os detalhes de um commit específico. git checkout
opera em três entidades distintas: os arquivos, os commits e as branches.git checkout NomeDoArquivo
. Veja o exemplo a seguir:house.html
, ele está com status unmodified. Farei uma pequena modificação para visualizarmos a função do git checkout na prática.git checkout house.html
ele retorna o arquivo do status modified para o status unmodified, sendo assim, as alterações deixam de existir e o arquivo volta ao seu estágio inicial.git diff
que não existe nenhuma modificação. Sendo assim, o arquivo voltou ao seu estágio de unmodified.git reset
e suas opções. git reset HEAD NomeDoArquivo
retorna um arquivo do status staged para o status modified, desse modo, podemos fazer alguma pequena alteração antes de um commit ser realizado.house.html
e o adicionei ao status staged através do comando git add *
(o asterisco adiciona todos os arquivos modificados).git reset HEAD house.html
para retornar o status do arquivo especificado house.html
para o status de modified. Podemos ver que após executado o próprio git nos informa o que foi executado.Unstaged changes after reset:
M house.html
git reset HEAD
temos outras 3 variações de reset que devem ser utilizadas em situações distintas. Cada um dos comandos altera de forma específica o status de cada arquivo. As formas do git reset
que temos são:git reset --soft
git reset --mixed
git reset --hard
git reset --soft
git reset --mixed
git reset --hard
git reset --hard
podemos notar que os commits posteriores ao referenciado deixam de existir.index.html
que será modificadoindex.js
, iremos commita-lo na branch feature. Após isso, realizamos um novo commit na branch master. Após essas alterações podemos realizar um Merge entre as branches, vinculando as alterações da branch Feature com a branch Master.Desse modo temos a estrutura de commits das duas branches ilustrada a seguir.index.html
que chamei de first commit.index.js
na nova branch feature. Abaixo podemos verificar os commits realizados.git merge feature
index.js
foi adicionado, logo tivemos uma nova inserção.git log --graph
. Ele exibe todo o fluxo de commits e nos mostra também de onde surgiu determinado commit.