Git Remoto | CodeSaga
Git nos servidores
Já entendemos o Básico de Git agora é hora de entender como compartilhar nosso código, como mantê-lo em um servidor e/ou serviço como o Github, BitBucket, entre outros.
Observação: Esse tutorial só pode ser feito se você já leu o tutorial de Chave Ssh e já adicionou sua chave aqui e o no Github!
Primeiro que vamos ver é como clonar, obter uma cópia de um projeto hospedo em um servidor Git, isso pode ser feito com o comando git clone conforme a seguir:
$ git clone git@git.codesaga.com.br:SEU_LOGIN/exemplo_git.git
Cloning into 'exemplo_git'...
Esse comando faz muita coisa, vamos entender passo a passo:
Primeiro ele nos dá um mkdir exemplo_git, sendo assim vamos testar isso:
$ cd exemplo_git
Boa, temos um diretorio exemplo_git, muito bom!
Além disse, ele já traz um repositorio git initializado e com o conteúdo salvo no servidor, vamos ver:
. .. .git/ README.md
Temos o diretório .git e o arquivo README.md e agora vamos ver o histórico de commits desse repositório com:
commit a1e153f4d7096a048644935995c6ec6fb08ede88
Author: Alan Rafael R. Batista <alanrrb@gmail.com>
Date:   Tue Apr 21 15:03:45 2015 -0300
Com o git clone o Git cria um diretório com o nome do projeto, traz todo o conteúdo do projeto e ainda todo o histórico, excelente!
Uma opção, entre muitas, do git clone, é a de especificar o nome da pasta que o Git deve criar, veja:
$ cd ~/workspace # vc sabe oq isso faz, neh!
$ git clone git@git.codesaga.com.br:SEU_LOGIN/exemplo_git teste_projeto_git
Cloning into 'teste_projeto_git'...
$ cd teste_projeto_git
Ou um exemplo que um amigo me perguntou uma certa vez:
$ mkdir teste_denovo_git
$ cd teste_denovo_git
$ git clone git@git.codesaga.com.br:SEU_LOGIN/exemplo_git .
Esse ultimo clona o projeto na pasta atual ., você lembra que . corresponde a localização atual, não é?
Agora vamos ver algumas informações sobre o nosso repositório remoto, com o comando git remote:
origin  git@git.codesaga.com.br:SEU_LOGIN/exemplo_git (fetch)
origin  git@git.codesaga.com.br:SEU_LOGIN/exemplo_git (push)
Ele nos mostra que temos um repositório remote e que o nome dele é origin e que podemos fazer push e fetch nele.
Falando em fetch e push, vamos ver o que é isso:
Esse comando pega todos os dados de um determinado repositório remoto, com o comando:
Onde origin deve ser o nome do remoto que você quer pegar, podendo ser outro diferente de origin caso você tenha mais de um ou tenha mudado o nome do origin.
$ cd ~/workspace/exemplo_git
$ subl README.md # faça algumas alterações e salve
$ git add novo_arquivo.txt README.md
$ git commit -m "Algumas alterações simples"
[master c27e355] Algumas alterações simples
create mode 100644 novo_arquivo.txt
$ git push origin master # já vamos ver esse comando
To git@git.codesaga.com.br:exemplo_git
a1e153f..c27e355  master -> master
Agora vamos ver como seria outra pessoa ou mesmo você em outra máquina pegando as alterações feitas no repositório:
From git.codesaga.com.br:exemplo_git
a1e153f..c27e355  master     -> origin/master
Veja que o Git obteve as alterações, mas vamos ver se elas já estão disponiveis:
Hum, parece que não, né? O Git por padrão traz as novas alterações para o repositório, mas não modifica nada ainda, para isso você precisa incluir essas alterações com o comando git merge ou dar um comando git pull que faz um fetch e merge para você, vamos fazer isso então:
Onde origin é o nome do repositório e master é o nome da branch. Ou faça somente:
Updating a1e153f..c27e355
README.md        | 1 +
novo_arquivo.txt | 0
O comando git pull sem paramêtros usa o repositório e branch listados em, mas é bom saber que pode colocar o repositório e branch que precisar ;).
Agora temos todas as alterações no nosso repositório, veja:
-rw-rw-r-- 1 alanrrb alanrrb   0 Abr 21 16:35 novo_arquivo.txt
-rw-rw-r-- 1 alanrrb alanrrb 108 Abr 21 16:35 README.md
commit c27e355574d97309ac938f731e069a840e32ac15
Date:   Tue Apr 21 16:29:22 2015 -0300
Algumas alterações simples
Agora sim! Todas as alterações estão disponiveis!
Já vimos o push em ação quando estavámos falando do fetch, mas vamos dissecar-lo um pouco mais:
Após fazer alterações no seu repositório e comitá-las, podemos enviar para o servidor com o comando git push, veja: ```git $ touch maisumarquivo.txt $ git add maisumarquivo.txt $ git commit -m "mais um arquivo adicionado" [master 4e86ea6] mais um arquivo adicionado 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 maisumarquivo.txt
$ git status On branch master Your branch is ahead of 'origin/master' by 1 commit. nothing to commit, working directory clean ```
Adicionamos mais um arquivo e comitamos e pegamos o status, o Git nos disse que estamos a um commit na frente do repositório, sendo assim, vamos sincronizar:
Writing objects: 100% (2/2), 302 bytes | 0 bytes/s, done.
c27e355..4e86ea6  master -> master
Feito, o Git enviou nossas alterações para o servidor remoto, os paramêtros origin e master são os mesmos usados no git pull, origin para o nome do remoto e master para o nome da branch (vamos falar mais e branch em breve).
Você já é mais que capaz de fazer o Challenge Git Básico, então, divirta-se!
Tentei seguir esse tutorial sem clicar em INICIAR O DESAFIO e dava ERRO! Ou seja, você só vai conseguir clonar o repositório quando voltar lá nos desafios e iniciar o(s) desafio(s) do git. Perdi umas 2 horas, mas fazer o que? kkkk Obrigado pela dica AlanPereiraCodes
augustofbento há aproximadamente 2 anos
Cloning into 'exemplo_git'... The authenticity of host 'git.codesaga.com.br (107.170.136.11)' can't be established. ECDSA key fingerprint is SHA256:oZLt0VtbS3o1lUzStHCoxt+tXMYj4JUY5wz4eynJZ+s. Are you sure you want to continue connecting (yes/no)? Host key verification failed. fatal: Could not read from remote repository.
AntonioCSV há mais de 1 ano
Olá, pra mim também aconteceu isso. Porém quando chegou nessa parte: "Are you sure you want to continue connecting (yes/no)?" eu apenas digitei "yes", aceitando continuar e aí fluiu normal.
Caio Alexandre há mais de 2 anos
Ola a todos esta dando esse erro abaixo, alguem poderia me ajudar a solucionar ? $ git push origin master fatal: 'origin' does not appear to be a git repository fatal: Could not read from remote repository.
Consegui usar o git clone sem problema, mas mesmo assim está dando a mensagem acima
Quando dou o comando: "git fetch origin" não aparece nada no terminal, isto é normal? Estou realizando a atividade pelo Win10 utilizando o Git Bash.
Como não há nada para pegar (fetch) nada é retornado no terminal mesmo.
alexandre-bechelli há mais de 2 anos
Conseguiu usar o git clone sem problemas? Se sim, verifique se chegou a alterar a pasta com "cd exemplo_git" por exemplo.
Davi Carvalho há mais de 2 anos
Queria saber se é para aparecer algo no meu github. estou preocupado com isso.
Não aparece nada em seu github. Fique tranquilo! Os repositórios são feitos no servidor do Code saga.
Tive problemas com este tutorial, logo no primeiro código, o git clone.
Comando: git clone git@git.codesaga.com.br:foo/exemplo_git.git
Cloning into 'exemplogit'... FATAL: R any foo/exemplogit foo DENIED by fallthru (or you mis-spelled the reponame) fatal: Could not read from remote repository.
Obs: "Em "foo" usei o meu login aqui no Code Saga.
Consegui resolver. Aparentemente eu não havia iniciado o Desafio para ter direitos de acesso ao host git@git.codesaga.com.br ou algo do tipo.
Ale Galliard há mais de 2 anos
Gláucia Isidoro há mais de 3 anos
nessa linha de comando $ subl README.md # faça algumas alterações e salve meu terminal responde com -bash: subl: command not found
Meu editor de texto é o sublime mesmo. Por que não está funcionando? Também tenho o Xcode.
Mauricio Juba há mais de 3 anos
Aqui resolvi assim; instalei o sublime 3 Adicionei uma variável de sistema SUBLIME caminho C:/program files/sublime text 3/ Adicionei %SUBLIME% no path reiniciei o bash e rolou.. o/
Wesley Naganuma há mais de 3 anos
se não rolar usa um vim README.md , Insert (no teclado), faz as alterações e salva para salvar Esc wq E resolved =] w para salvar Q para fechar se precisar forçar a alteração usa ! (esclamação)
Sim, instalando o Sublime Text 3 resolve: http://www.diolinux.com.br/2013/07/omo-instalar-o-sublime-text-3-no-via-ppa.html
Na verdade o comando "subl" é para chamar o Sublime
Ou podem simplesmente utilizar o notepad do windows. Ao invés de "subl" usa-se "notepad" || "notepad.exe"
Git Remoto OK
Eliane Nascimento há mais de 4 anos
Richel Sensineli há mais de 4 anos
Após atualizar minha SSH consegui. :)
Não estou conseguindo fazer o clone, ele me pede a senha.
Comando utilizado: git clone git@git.codesaga.com.br:RichelSensineli/exemplo_git.git
Gileade há mais de 4 anos
Desculpa a ignorância, pois não havia começado o desafio antes...
Olá... estou tendo problemas com o comando push... no comando clone eu já não estou conseguindo colocar o SEU_LOGIN como o meu login, então procurei na internet e vi que da pra fazer o procedimento sem... então venho fazendo sem... porém quando chegou na hora do push está dando o erro abaixo... alguém consegue me ajudar? abraços!
git push origin master FATAL: W any exemplo_git Gileade DENIED by fallthru (or you mis-spelled the reponame) fatal: Could not read from remote repository.
raulcgomes há mais de 4 anos
Não tem o .git no final do clone! No desafio funcionou 100%
Estou tentando usar o comando clone, mas estou tendo a seguinte resposta: FATAL: R any meuUsuarioCodeSaga/exemplo_git meuUsuarioCodeSaga DENIED by fallthru (or you mis-spelled the reponame) fatal: The remote end hung up unexpectedly
Alguma idéia do que ocorre?
Flávio Visetti há mais de 4 anos
Gustavo Sampaio há mais de 4 anos
Ao gerar o comando git clone aparece esse erro: Cloning into 'exemplogit'... sshexchange_identification: read: Connection reset by peer fatal: Could not read from remote repository.