git config --global user.name “nome” # cadastra username
git config --global user.email “[email protected]” # cadastra e-mail usuario
git config --global core.editor code # cadastra vscode como editor padrão
# para saber qual valor está salvo:
git config user.name | user.email | core.editor
# para saber todos valores salvos:
git config --listgit init # inicializa repositório no git e cria pasta .git com arquivos de confgiguração)git remote add origin [email protected]:nomeDoUsuario/nomeDaPasta.git # Liga repositório local ao remoto.
git push -u origin master # faz o primeiro envio dos arquivos para repositório remoto.
# Após isso somente usar git push ou se tiver mais de um branch usar
git push origin master # ou nome de outro branch git clone endereçoRepositório(html/ssh) nomeDaPasta # clona repositório para pasta local na maquina.Arquivo no repositório e dentro desse arquivo é descrito padrões que ele deve seguir.
Como tipos de arquivos (*.json = vai ignorar todos arquivos .json)
e também um arquivo especifico descrito pelo seu nome e extensão.
Consultar - https://github.com/github/gitignore
Se o arquivo já tinha adicionado alguma vez, primeiro você precisa removê-lo do cache.
git rm --cached caminho/arquivo.extensão
Cria atalhos para os comandos
git config --global alias.atalho comandoNormalAs tags servem para definir versões do que está sendo feito, para separar partes de um projeto com vários commits. Ficam na aba releases.
git tag -a 1.0.0 -m “Mensagem da tag” # cria tags com descrição.
git push origin master –tags # para subir para repositório remoto todas tags criadas ate o momento.
git tag -D nomeDaTag # apaga tag no repositório localgit push origin :nomeDaBranch ou :nomeDaTag- Untracked Não marcado, arquivo que acabou de ser adicionado no repositório mas ainda não foi visto(não foi add) pelo git.
- Unmodified Já foi adicionado no GIT mas não sofreu nenhuma alteração.
- Modified Arquivo já add que sofreu alteração.
- Staged área onde vai ser criado a versão, arquivo prontos para serem enviados pelo commit criando hash. E os arquivos voltam pro estado unmodified.
git commit --amend # abre arquivo git onde os dados do commit estão para poderem ser editados e salvos.
Caso tenha novas alterações em staged vão ser adicionadas nesse mesmo commit.
git commit --amend --no-edit # Adiciona alterações em staged mas não abre arquivo de dados do commit para alteração.Útil para copiar commits de outras branchs.
git cherry-pick <hash> # pega as alterações do commit selecionado e adicionado na branch atual.git add -p # abre editor mostrando as alterações de cima para baixo no arquivo com opções.
exemplo:
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index ae6e86e..778f546 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -5,6 +5,7 @@ import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HomeModule } from './home/home.module';
import { ReservationModule } from './reservation/reservation.module';
+import { HttpClientModule } from '@angular/common/http';
@NgModule({
declarations: [
(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? Legenda das opções:
- y = yes
- n = no
- q = do not add and quit menu
- a = add all
- d = do not add for all
- j = jump/skip to the next one
- g = jump back previous one
- s = split changes
- e = edit manually
git rebase -i HEAD~<number of commits> # abre editor com os commits selecionados.
Exemplo:
pick faf5650 add initial components and services for reservation system
pick 50519c3 chore: local storage reservations
# Rebase b0965ee..50519c3 onto b0965ee (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup [-C | -c] <commit> = like "squash" but keep only the previous
# commit's log message, unless -C is used, in which case
# keep only this commit's message; -c is same as -C but
# opens the editor
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified); use -c <commit> to reword the commit message
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#Ponteiro móvel que leva um commit
Pode haver mais de um branch no mesmo repositório, posicionados ou não em um mesmo commit/hash.
git checkout -b nomeBranch # cria novo branch onde o HEAD vai ficar posicionado.
git checkout nomeBranch # muda para o branch selecionado.
git branch # mostra todos os branchs do repositório.
git branch -D nomeBranch # deleta branch selecionado no repositório local, e também os commits que estãoapontados nele.Merge cria um commit extra, fazendo uma junção dos ultimos commits de branchs diferentes no branch principal.
Rebase Pega tudo que tiver no branch separado e bota no incio da fila(fast foward). Aplica todas as mudanças para frente da fila.
Se você está atualizando o seu branch com coisas vindas do master, use...
git pull origin master --rebaseIsso vai evitar sujar o gráfico com mensagens de merge que não são necessárias.
Se você está jogando sua mudança para o master, use...
git merge nome_da_branchpois isso vai sinalizar onde a mudança entrou e também não vai precisar forçar nenhum push.
git status # reporta como está repositório no momento, mostra status dos arquivos e em qual branch está e etc..
git add arquivo # adiciona arquivo no repositório para ser administrado pelo git
git commit -m “mensagem sobre o commit” # cria uma imagem(snapshot) com todos arquivos tendo uma versão.
# Cada commit gera uma hash(código único) para identificação dessa versão.
git commit -am “mensagem sobre o commit” # commitar arquivo já adicionado anteriormente sem precisar add depois da modificação, commita direto.
git log # mostra hash commit, autor, data e msg do commit.
git log --decorate # mostra infos adicionais como branchs, merge e etc.
git log --author=”nomeAutor” # lista todos commits desse autor.
git log --graph # lista em forma grafica o que está acontecendo.
git shortlog # lista em ordem alfabetica autores, quantos commits eles fizeram e quais foram.
git shortlog -sn # lista apenas quantidade de commits e autor.
git reflog # mostra todas informações do historico inclusive commits deletados com reset hard.
git show [codigoHash] # mostra alterações feitas no arquivo commitado, comparado com sua versão anterior.
git diff # consegue ver alterações feitas no arquivo comparado com a versão anterior salva antes de adicionar para commitar.
git diff --name-only # lista somente nomes dos arquivos modificados.
# Comando responsável por guardar modificações(arquivos que estão no modo modified) que ainda não foram commitadas num arquivo que possa acessar depois quando necessário.
git stash list # lista todos arquivos que foram alterados para WIP.
git stash clear # elimina todos arquivos que estiverem no stash.Bom para branchs separadas pois não mantém as alterações feitas pelo reset no histórico.
Evitar fazer na
masterpois outros usuários terão problemas com histórico desatualizado.
git checkout nomeArquivo # retorna estado do arquivo de modified para antes da edição = unmodified.
git reset HEAD <filename> # volta para modified arquivo que estava em staged.
git reset --soft <hash> # apaga todos commits depois do hash e retorna as alterações para staged.
git reset --mixed <hash> # apaga todos commits depois do hash e retorna as alterações pra modified.
git reset --hard <hash> # apaga todos commits depois do hash e volta pra ultima versão salva do arquivo.
# atualizar alterações no remoto
git push -f origin codigoHash:branchVolta as alterações para um passo anterior mas mantem no histórico do commit anterior com alteração.
git revert <hash> # reverte alteração feita, mas mantém commit da alteração no histórico.





