COMANDOS
pwd
# mostra o caminho para o seu diretório atual
ls
# lista arquivos e diretórios
# ls -a lista arquivos ocultos
mkdir
# cria diretório
cd
# acessa diretório
# cd .. volta para o diretório anterior
rm
# remove arquivo ou diretório (use -R para remover de forma recursiva)
git init
# inicializa um repositório
git status
# mostra a situação do seu repositório
git log
# Exibe a uma lista de commits executados
# git log --oneline
# git log --stat
# git log -p
git show
# Exibe os dados de um commit
git clone
# copia um repositório para o seu computador
$git add
# adiciona arquivos do diretório de trabalho na staging area
$git commit
# Envia os arquivos da staging area para o repositório
$git diff
# Exibe as diferenças entre duas versões do arquivo
EXERCÍCIOS:
Inicializando repositório
# cria diretório git-course
mkdir git-course
#acessa diretório git-course
cd git-course
# cria diretório new-git-project
mkdir new-git-project
# acessa diretório new-git-project
cd new-git-project
# inicializa repositório
git init
# Resultado:
# Initialized empty Git repository in /.../new-git-project/.git
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
# Resultado:
# On branch main
# No commits yet
# nothing to commit (create/copy files and use "git add" to track)
Primeiro Commit o index.html, app.css e app.js:
Crie um arquivo index.html Crie um diretório css e dentro o arquivo app.css Crie um diretório js e dentro um arquivo app.js
Use o editor de sua preferência
|- index.html
|- css \ app.css
|- js \ app.js
Conteúdo do arquivo HTML:
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>Projeto Blog</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<link rel="stylesheet" href="css/app.css">
</head>
<body>
<script src="js/app.js"></script>
</body>
</html>
Execute no console:
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
# adiciona o arquivo index.html no stage index para preparar o commit
git add index.html
# adiciona os arquivos app.ccs app.js no stage index para preparar o commit
git add app.ccs app.js
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
# envia o commit da stage index ao repositório (local)
git commit -m "adiciona arquivos iniciais"
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
Segundo Commit altera o index.html:
Altere o conteúdo no arquivo index.html dentro da tag <body> … </body>:
<header>
<h1> O nome do seu blog </h1>
</header>
Execute no console:
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
# adiciona todos os arquivos modificados no stage index para preparar o commit
git add .
# envia o commit da stage index ao repositório (local)
git commit -m "altera o index.html adiciona o header"
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
Terceiro Commit gitignore:
Crie um arquivo .gitignore com o conteúdo. Lista de arquivos que devem ser ignorados pelo git.
ATENÇÃO o ponto(.) na frente do nome do arquivo é obrigatorio e torna ele oculto.
Conteúdo do .gitignore:
*.class
Execute no console:
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
# adiciona todos os arquivos modificados no stage index para preparar o commit
git add .
# envia o commit da stage index ao repositório (local)
git commit -m "adiciona gitignore"
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
Tag Adcionando uma tag v1.0
Execute no console:
#adiciona um label (tag) ao ultimo commit
git tag v1.0
#mostra a lista de commits em uma linha cada
git log -- oneline
Adicione ao index.html dentro do <body>
<div class="container">
<main>
</main>
</div>
<footer>
Feito com ♥
</footer>
Execute no console:
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
# adiciona todos os arquivos modificados no stage index para preparar o commit
git add .
# envia o commit da stage index ao repositório (local)
git commit -m "altera o index.html adiciona o main"
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
#mostra a lista de commits em uma linha cada
git log -- oneline
#verifique que a tag continua no commit anterior
Branchs
crie uma branch sidebar
# cria a branch sidebar
git branch sidebar
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Ainda na brach main adicione ao app.css:
body {
background-color: #00cae4;
}
Execute no console:
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
# adiciona todos os arquivos modificados no stage index para preparar o commit
git add .
# envia o commit da stage index ao repositório (local)
git commit -m "css atualiza cor"
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Mude de branch e altere o index.html
# troca para branch sidebar
git checkout sidebar
Na brach sidebar adicione ao index.html dentro da <div class="container"> e depois da tag </main>:
<aside>
<h2>About Me</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eos, debitis earum molestias veniam suscipit aliquam totam exercitationem tempore neque vitae. Minima, corporis pariatur facere at quo porro beatae similique! Odit.</p>
</aside>
Execute no console:
# Apresenta a situação do diretório de trabalho em relação ao repo
git status
# adiciona todos os arquivos modificados no stage index para preparar o commit
git add .
# envia o commit da stage index ao repositório (local)
git commit -m "atualiza sidebar"
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Crie a branch footer apartir da main e altere index.html na tag <footer>:
# Cria a branch footer iniciando da main e alterna para branch footer
# equivalente a:
# git checkout main - precisaria desse para sair da branch sidebar e ir para main
# git branch footer - na main cria a branch footer
# git checkout footer - alternar para branch footer
# -b cria a banch e altera para ela
# footer <é a nova branch> e main <é a origem>
$ git checkout -b footer main
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Altere o arquivo index.html na tag footer
<footer>
<section>
<h3 class="visuallyhidden">Social Links</h3>
<a class="social-link" href="https://twitter.com/mariojp">
<img src="img/social-twitter.png" alt="Twitter">
</a>
<a class="social-link" href="https://www.instagram.com/mariojpereira/">
<img src="img/social-instagram.png" alt="Instagram">
</a>
</section>
</footer>
Execute no console:
# adiciona todos os arquivos modificados no stage index para preparar o commit
git add .
# envia o commit da stage index ao repositório (local)
git commit -m "atualiza footer"
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Merge
Fast-forward merge - juntar as modificações do footer com o main
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
# alternar para branch main
git checkout main
#combinar o footer com o main
git merge footer
# Apresenta Fast-forward merge na mensagem porque o main é parte da banch footer
# -- * -- * -- * -- *
# main footer
# -- * -- * -- * -- *
# (footer/main)
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Regular merge merge - juntar as modificações do sidebar com o main
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
# alternar para branch main
git checkout main
#combinar o footer com o main
git merge sidebar
# Apresenta Merge made by 'recursive' strategy
# -- * -- * -- * -- * main
# |
# * -- * -- * sidebar
# -- * -- * -- * -- * -- * main
# | |
# * -- * -- * ---
# sidebar
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Forçar erro no merge
Crie um branch header-update e altere o header do index.html
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
# Cria a branch header-update e alterna para header-update
git checkout -b header-update
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Altere o index.html no header
<header>
<h1>Paralamas do Sucesso<h1>
</header>
Execute no console:
# adiciona todos os arquivos modificados no stage index para preparar o commit
git add .
# envia o commit da stage index ao repositório (local)
git commit -m "atualiza header"
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Retorne a branch main e altere o header do index.html
# Alterna para main
git checkout main
Altere o index.html no header
<header>
<h1>Banda Eva<h1>
</header>
Execute no console:
# adiciona todos os arquivos modificados no stage index para preparar o commit
git add .
# envia o commit da stage index ao repositório (local)
git commit -m "atualiza main"
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs
Aplicando o Merge:
# adiciona todos os arquivos modificados no stage index para preparar o commit
git merge header-update
# CONFLICT (content) ...
# Automatic merge failed ...
# verifica a situação do seu repositório
git status
# vão ser apresentados os arquivo onde há conflitos a serem corrigidos
Edite o arquivo index.html:
<body>
<header>
<<<<<<< HEAD
<h1>Banda Eva<h1>
=======
<h1>Paralamas do Sucesso<h1>
>>>>>>> header-update
</header>
É preciso apagar todos indicadores do merge e o conteúdo que voce não deseja que continue
<<<<<<< HEAD
=======
>>>>>>> header-update
Execute no console:
# adciona e envia o commit nesse caso não pede a mensagem já existe a mensagem do merge
# equivale a
# git add .
# git commit
git commit -a
# mostra a lista de commits em uma linha cada
git log --oneline --graph --all
# verifique que a tag e as branchs