Git - Exemplos#

Configuração de Repositório Git e Operações Básicas


1. Inicializando um Repositório Git e Conectando a um Remoto#

git init --initial-branch=main
git remote add origin git@url_git.com:foo_bar/dissertacao.git
git add .
git commit -m "Initial commit"
git push --set-upstream origin main
  • git init --initial-branch=main: Cria um repositório Git local e configura o ramo inicial como main.
  • git remote add origin: Adiciona o repositório remoto com o nome origin.
  • git push --set-upstream: Envia o commit local para o repositório remoto, configurando o ramo main como o upstream.

2. Alterando a URL do Repositório Remoto#

Caso precise alterar a URL do repositório remoto, como de HTTP para SSH, use:

git remote set-url salsa.debian git@url_git.com:foo_bar/asic-riscv.git
git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/FOO_KEY -F /dev/null"
  • git remote set-url: Modifica a URL do repositório remoto para usar SSH.
  • git config core.sshCommand: Configura o SSH para usar uma chave específica para autenticação.

3. Configurando Múltiplas Fontes Remotas#

Para configurar múltiplas fontes remotas no mesmo repositório:

git remote -v
git remote rename origin codeberg
git branch
git remote add salsaDebian git@url_git.com:foo_bar/leorv32.git
git remote -v
git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/FOO_KEY -F /dev/null"
git push salsaDebian main
git remote -v
  • git remote rename origin codeberg: Renomeia a origem remota para codeberg.
  • git remote add salsaDebian: Adiciona um novo repositório remoto chamado salsaDebian.
  • git push salsaDebian main: Envia o código para o repositório remoto salsaDebian.

4. Trabalhando com Submódulos#

Para configurar e atualizar um submódulo no repositório:

git submodule set-url leorv32 https://url_git.com/foo_bar/leorv32.git
  • git submodule set-url: Modifica a URL de um submódulo existente no repositório.

5. Atualizando o Ramo Principal (main)#

Para atualizar o ramo main com as últimas alterações de outro ramo (por exemplo, dev):

git checkout main
git reset --hard dev
  • git reset --hard: Atualiza o ramo main com as alterações do ramo dev, removendo qualquer alteração não comitada no main.

6. Removendo Arquivos do Repositório Após o Upload#

Se você deseja remover um arquivo do repositório, mas mantê-lo no seu sistema local (exemplo: .env):

echo ".env" >> .gitignore
git rm --cached .env
git commit -m "Remove .env do repositório"
git push
  • git rm --cached: Remove o arquivo do repositório, mas o mantém no seu sistema local.
  • echo ".env" >> .gitignore: Adiciona o arquivo .env ao .gitignore, para que ele não seja incluído em commits futuros.

7. Restaurando Arquivos de um Commit Específico#

Caso precise restaurar um arquivo de um commit específico, use o seguinte comando:

git restore --source=77516cb3 desenvolvimento/rtl_simu_*.tex
  • git restore --source: Restaura arquivos de um commit anterior, especificado pelo hash do commit (77516cb3).

8. “Desfazer” o commit, mas manter o código (Soft Reset)#

git reset --soft HEAD~1

git rm -r --cached .
git add .

# Verifique o que vai entrar no commit
git status