O arquivo .gitignore
é usado para especificar arquivos e pastas que devem ser ignorados pelo Git. Isso é útil para evitar que arquivos temporários, arquivos de compilação ou arquivos sensíveis sejam incluídos no repositório.
Se precisamos ignorar uma pasta, por exemplo para-ser-ignorada/
, podemos adicionar a seguinte linha ao .gitignore
:
echo para-ser-ignorada/ > .gitignore
printf "para-ser-ignorada" > .gitignore
cat > .gitignore
Isso permitirá que você insira manualmente o novo conteúdo no terminal. Pressione Ctrl + D quando terminar de inserir o texto.
git restore README.md
Exemplo restaurando do arquivo README.md
- Caso tenha realizado alterações localmente e utilize este comando, elas serão excluídas e substituídas pelo conteúdo do commit anterior.
- Digamos que voce tem o seguinte git log:
Danie@DESKTOP-CER4OAS MINGW64 /c/DOI/dio-git-resumos (main)
$ git log
commit b5d5cb1de721e48371fd46af456db1d9d728cfa5 (HEAD -> main)
Author: DanielAugustoFreire <[email protected]>
Date: Tue Jan 2 11:19:29 2024 -0300
segundo commit
Para mudar o segundo commit
pode-se utilizar o seguinte comando:
git commit --amend -m "2o commit, adicionado tal coisa"
OUTPUT:
Danie@DESKTOP-CER4OAS MINGW64 /c/DOI/dio-git-resumos (main)
$ git log
commit aec8df26dfe41d391ddf29effacdc7bd5cb6e02e (HEAD -> main)
Author: DanielAugustoFreire <[email protected]>
Date: Tue Jan 2 11:19:29 2024 -0300
2o commit, adicionado tal coisa
O comando git reset
é uma ferramenta poderosa no Git que é usada para modificar o estado do seu repositório. Vamos explorar as opções e os conceitos associados mais detalhadamente.
- Soft Reset.
- Mixed Reset (default).
- Hard Reset.
O Git move o ponteiro da branch para o commit especificado, mantendo as alterações no seu diretório de trabalho e as mantendo na área de staging (também conhecida como índice). Isso significa que todas as alterações que estavam presentes no commit especificado agora estão na área de staging e você pode criar um novo commit com essas alterações, se desejar.
GIT LOG:
commit 10b981e9df93295d5e24d681ca20ebae999a5c5f (HEAD -> main) Author: DanielAugustoFreire [email protected] Date: Wed Jan 3 15:26:29 2024 -0300
Segundo Commit
commit 510d10bca6158c284d814ab9ace2ebbf445f435c Author: DanielAugustoFreire [email protected] Date: Tue Jan 2 22:11:10 2024 -0300
Primeiro Commit
git reset --soft 510d10bca6158c284d814ab9ace2ebbf445f435c
Depois desse comando o branch vai para o commit Primeiro Commit
, mas as alterações que foram feitas no Segundo Commit permanecem na area de staging,
Basicamente estao no add
.
Antes do Soft Reset:
On branch main
nothing to commit, working tree clean
Depois do Soft Reset:
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: resumo/aula-01.md
new file: resumo/aula-02.md
Isso move as alterações de volta para o seu diretório de trabalho e remove as alterações da área de staging. Se você quiser fazer alterações diferentes antes de confirmar novamente, isso é útil.
Levando em consideracao o git log de antes, usando este comando:
git reset 510d10bca6158c284d814ab9ace2ebbf445f435c
||
git reset --mixed 510d10bca6158c284d814ab9ace2ebbf445f435c
Depois desse comando o branch vai para o commit Primeiro Commit
, mas as alterações que foram feitas no Segundo Commit NAO permanecem na area de staging,
Basicamente Sao Untracked Files
.
Antes do Soft Reset:
On branch main
nothing to commit, working tree clean
Depois do Soft Reset:
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
resumo/
nothing added to commit but untracked files present (use "git add" to track)
O git reset --hard é geralmente utilizado quando você deseja descartar completamente todas as alterações locais não confirmadas e redefinir seu repositório para um estado anterior na história.
Levando em consideracao o git log de antes, usando este comando:
git reset --hard 510d10bca6158c284d814ab9ace2ebbf445f435c
Todas as alterações no diretório de trabalho e na área de staging (índice) são removidas e substituídas pelo conteúdo do commit especificado. Isso significa que as alterações não confirmadas são permanentemente descartadas.
Antes do Soft Reset:
On branch main
nothing to commit, working tree clean
Depois do Soft Reset:
On branch main
nothing to commit, working tree clean
O HARD reset apaga tudo que nao estiver no commit especificado, entao se tiver coisas importantes evite usar ele.
git remote add origin https://github.com/DanielAugustoFreire/git-testando.git
O comando git push é usado para enviar as alterações locais do seu repositório Git para um repositório remoto. Isso é útil quando você fez modificações em seu código local e deseja atualizar o repositório remoto com essas alterações. O formato básico do comando é o seguinte:
Exemplo:
git push -u origin main
Em um ambiente Bash, você pode usar o comando git remote rm. Aqui está um exemplo de como você pode fazer isso:
git remote rm <nome_do_repositorio_remoto>
Substitua <nome_do_repositorio_remoto> pelo nome do repositório remoto que você deseja remover. Se você não souber o nome do repositório remoto, pode usar o comando git remote -v para listar todos os repositórios remotos associados ao seu repositório local.
Se voce tiver um repositorio chamado origin
git remote rm origin
Um branch no Git é simplesmente um ponteiro móvel para um desses commits. O nome do branch padrão no Git é master. Conforme você começa a fazer commits, você recebe um branch master que aponta para o último commit que você fez. Cada vez que você faz um novo commit, ele avança automaticamente.
git checkout -b nova_branch
.
git branch nova_branch
git branch [nome_da_branch]
apenas cria a branch, git checkout -b [nome_da_branch]
cria a branch e muda para ela ao mesmo tempo. O uso de git checkout -b é mais conveniente quando você quer começar a trabalhar em uma nova branch imediatamente após criá-la.
git checkout [nome_da_branch_existente]
git branch
git branch -a
O Git Pull e Git Push são comandos essenciais no Git, facilitando a colaboração eficiente em projetos versionados.
O git pull
é utilizado para atualizar o repositório local com as alterações mais recentes do repositório remoto. Ele realiza duas operações principais:
-
git fetch
: Obtém as alterações do repositório remoto, incluindo novas branches ou alterações em branches existentes, mas não aplica essas alterações ao seu código local. -
git merge
ougit rebase
: Combina as alterações recuperadas do repositório remoto com o seu código local. Pode criar um commit de merge ou reescrever o histórico usando rebase, dependendo da configuração e do comando específico utilizado.
Exemplo de uso:
git pull [repositório_remoto] [branch]
O git push é usado para enviar suas alterações locais para o repositório remoto. Ele envia commits locais para uma branch específica no repositório remoto.
git push [repositório_remoto] [branch_local]
Antes de executar o git push, é importante garantir que seu repositório local esteja sincronizado com o repositório remoto. Use git pull para obter as alterações mais recentes antes de enviar suas próprias alterações.
Ambos os comandos são fundamentais para facilitar o trabalho colaborativo em projetos Git, permitindo que diferentes desenvolvedores compartilhem e integrem suas alterações de forma eficiente.
O comando git fetch recupera as informações mais recentes do repositório remoto, incluindo novos branches e commits, sem aplicar automaticamente essas alterações ao seu diretório de trabalho local. Ele atualiza os ramos remotos e permite que você avalie as mudanças antes de decidir integrá-las localmente. Isso é útil para manter-se atualizado com o progresso do repositório remoto sem impactar imediatamente seu código local. Após o git fetch, você pode usar git merge ou git rebase para incorporar as alterações, se desejar.
reposotorio local
|
git fetch origin main
|
repositorio remoto
O comando git diff mostra as diferenças entre as alterações não registradas no diretório de trabalho e o último commit. Ele destaca as linhas adicionadas ou removidas. Utilizando opções adicionais, é possível comparar diferentes commits ou branches, ajudando a visualizar mudanças ao longo do tempo. O comando é fundamental para revisar e entender modificações antes de realizar commits.
repositorio local
|
git diff main origin/main
|
repositorio remoto
Propósito: O comando git merge é utilizado para integrar alterações de um branch para outro. Pode ser usado para mesclar um branch remoto no local ou para mesclar dois branches locais.
git merge
git clone https://github.com/DanielAugustoFreire/git-testando.git --branch teste --single-branch
Se clonar sem espicificar ele pode clonar a main