Salva Vidas básico do Git (me ajude a entender git por favor!)

Hello!

Hoje vou deixar alguns comandos básicos do git para iniciantes e para caras como eu (iniciantes também).

Para quem não sabe, o Git é um versionador que controla a versão das coisas que você faz. E quando eu digo coisas, digo que não é somente códigos fonte de linguagens que estão sendo colocados, pois colocamos quaisquer tipos de arquivos aí dentro.

fonte: https://mastigado.wordpress.com

Este tutorial básico estava meio encostado e com o nome de “Comandos básicos do Git”, porém resolvi mudar por conta da necessidade que tive de trabalhar não apenas com os comandos básicos, mas também os passo a passo básicos e quando utilizá-los. Por isso listei-os abaixo da melhor forma que encontrei.

Vale deixar aqui registrado que este tutorial deverá aumentar de tamanho por conta de atualizações constantes que farei e quando achar que tá de bom tamanho retirei esta frase daqui.  Por enquanto é isso, pode esperar que tem mais.

(Preferencialmente para você que não sabe nada de git) Esclarecimentos básicos antes de você começar mesmo sem saber nada

Estrutura básica de um repositório git (tente imaginar essa estrutura como camadas, andares de um prédio ou basicamente uma fase, estado ou um estágio que está acontecendo no momento).

– Quando você acabou de efetuar o comando git init, você acabou de criar um repositório e seus arquivos estão ali esperando serem versionados, eles são chamados nesse estado de untracked files. Você está no conhecido working directory (diretório de trabalho).

– Quando você executa o comando git add . (tem esse “.” aí mesmo) está querendo dizer que está retirando os seus arquivos de um working directory e passando para uma staged area.

– E para este último dizemos que quando você executa o comando commit -m “Meu Primeiro Commit” está retirando os seus arquivos de sua staged area e os colocando numa espécie de fichamento ou se assim posso dizer “uma marcação” daqueles arquivos que você separou com o comando git add . e que depois os colocou dentro de uma caixa de papelão com uma etiqueta chamada de “Meu Primeiro Commit”, lacrou e guardou lá no seu depósito. Ou melhor ainda, você acabou de criar uma versão destes arquivos que você marcou com o comando add e que depois executou o commit.

Contudo por conta deste último ítem veja bem, apesar de a grosso modo estarem “guardados”, estes arquivos continuam sempre no mesmo lugar desde o princípio onde sempre estiveram, eles apenas mudam de estado. Para transferir para a nossa realidade é como se você numa hora estivesse com febre, depois estivesse com a temperatura corporal normalizada, depois cansado após uma longa caminhada, depois dormindo e por aí vai, você sempre estará no planeta terra (seu planeta seria seu repositório git), mas o seu estado vez ou outra alternará.

Agora sim iniciaremos.

A – Comandos básicos de configuração do gitVoltar ao início

01 – Antes de começarmos a utilizar o git façamos as configurações globais.

O user name:


git config --global user.name "Meu Lindo Nome"

02 – E o email:


git config --global user.email "meulindoemail@centraldeemailslindos.com"

B – Criando um repositório local com o intuito de versioná-lo em um repositório remoto que já existeVoltar ao início

01 – Para iniciarmos o repositório que queremos trabalhar e depois empurrá-lo para nosso servidor git, primeiramente devemos iniciar o nosso repositório git.

git init

02 – Adicione a origem de seu repositório remoto que irá utilizar. Provavelmente este repositório remoto lhe informará qual o comando correto para você adicioná-lo e você vai ter de se informar sobre isso. Para te ajudar coloquei dois comandos abaixo de como podem se parecer.


git remote add origin https://github.com/blogmastigado/projetoandroid.git


git remote add origin ssh://github.com/blogmastigado/projetoandroid.git

03 – Depois de criado, podemos ver o que tem (e como está) dentro de nosso repositório como o comando abaixo.

git status

O comando git status nos mostra:

Mostra quais são os arquivos que estão fora do controle de versão do git (untracked files).

04 – Para adicionar os arquivos em meu controle de versão para que passem a ser “versionados” utilizamos o comando git add (git add nome_do_arquivo_a_ser_versionado). Com este comando, você adiciona as pastas que deseja ao controle de versão. Porém se você digita .(espaço e ponto) após o comando, ele pega tudo que está dentro do diretório em que você está se encontra no momento.

O git add significa que os seus arquivos estão preparados para serem comitados e ao invés de os arquivos estarem listados como untracked files, serão listados como new file(novo arquivo).

git add .

Se você der o comando git status (novamente) depois de git add, ele mudará de estado para mostrar os arquivos que estão para serem comitados.

05 – Commit! Logo após que você adiciona os seus arquivos para serem “comitados” com o comando git add é hora de utilizar o comando commit:


git commit -m "O meu primeiro commit no git"

E por que fazer o commit?

Toda a vez que você altera um arquivo, você “comita”, ou seja, você grava aquela versão.
Quando você digita git commit -m, você está informando que vai deixar uma mensagem de identificação sobre a versão que você está gerando.

Após executar o comando, ele irá gerar um código para este seu commit(algo como: master (root-commit) 4d68ec3] “O meu primeiro commit no git”).

Você também pode dar um git status para ver como as coisas estão saindo. Possivelmente ele irá dizer que não será preciso fazer mais nada porque tudo o que foi marcado para ser “comitado”, já foi comitado.

06 – E para colocar os meus arquivos lá no meu servidor git remoto?

Para empurrar os arquivos versionados pelo meu commit anterior utilizo-me do comandos abaixo.

git push -u origin master

Caso Problemas de autenticação com erro 403

Repare que pode existir endereço com https ou http, porém as vezes você pode ser supreendido com um erro do tipo “remote: Access denied” junto com “The requested URL returned error: 403”.
Para resolver este tipo de problema alguns indicam seguir no diretório/caminho .git/config que está dentro da raiz do seu projeto git, abra o arquivo config e altera o parâmetro http ou https do atributo url para ssh, depois salve, feche o arquivo e tente novamente enviar para o servidor remoto.

Caso esse problema de autenticação (erro 403) seja nos repositórios do GitLab

01 – Verifique se já existe uma chave em seu SO.

Para Windows faça:

type %userprofile%\.ssh\id_rsa.pub

Ou pode utilizar o Git Bash no Windows, GNU/Linux, macOS, PowerShell:

type %userprofile%\.ssh\id_rsa.pub

O teste acima é meramente ilustrativo porque estou contando que esta chave já existe, por isso não vou deixar aqui como gerá-la (todas estas informações estão em http://seu_servidor_gitlab/help/ssh/README).

02 – Para copiar esta chave existente para o GitLab

No Windows:

type %userprofile%\.ssh\id_rsa.pub | clip

No Mac OS:

pbcopy < ~/.ssh/id_rsa.pub

No GNU/Linux (requer que o pacote xclip esteja instalado):

xclip -sel clip < ~/.ssh/id_rsa.pub

Para o Git Bash no Windows / Windows PowerShell:

cat ~/.ssh/id_rsa.pub | clip

03 – Depois siga para o Gitlab

Após executado os comandos acima siga para o Gitlab, Profile e Keys. Cole a chave lá e clique em Add Key.
Se ainda tiver problema no seu repositório, readicione-o com as informações contidas em seu repositório remoto no Gitlab.

Para forçar o envio do repositório local à sua origin

git push -u --force origin master

A respeito deste comando (–force)

Em virtude do erro: “! [rejected] master -> master (fetch first) error: failed to push” é provável que o comando push não seja o adequado no momento.
A resposta está lá, o git está dizendo para você buscar primeiro (primeiro o pull). Provavelmente alguém mais já enviou para a origin (fez o push). Consequentemente você tem que buscar (fazer o pull), mesclar o changeset (fazer o merge), daí você poderá empurrar (fazer o push) outra vez.
Se você não conseguiu fazer normalmente o push e “forçou a barra para fazer” (se fizer usando a opção –force), você pode estragar o histórico de alterações (na verdade provavelmente você irá estragar esta linha do tempo).

Para maiores detalhes você pode consultar este post do StackOverflow que foi de onde retirei esta bela explicação sobre o uso forçar o push em um repositório.
fonte: http://stackoverflow.com/questions/28429819/rejected-master-master-fetch-first

Essa fonte abaixo foi uma das minhas fontes de inspiração e meu ajudou muito (dêem uma força para o canal do RB Tech)
fonte: https://www.youtube.com/playlist?list=PLInBAd9OZCzzHBJjLFZzRl6DgUmOeG3H0

fonte: https://mastigado.wordpress.com

Erros Git e Github

Olá pessoal!

Hoje iniciarei um arquivo contendo erros que podem ocorrer no git quando se está trabalhando com ele. Sempre irei atualizá-lo quando houver algum problema referente a isso, bem sei que antes de colocar um arquivo como este, deveria fazer um mini tutorial de git para o pessoal entender sobre o que estou falando, mas farei isto em seguida. Por ora, segue a lista de erros:

fonte: https://mastigado.wordpress.com

Caso aconteça de você ser avisado pelo git no meio de um commit para o seu github que seu repositório tem limite de espaço, como na mensagem abaixo:

this exceeds GitHub’s file size limit of 100.00 MB

Você poderá utilizar o seguinte comando:

git filter-branch -f –index-filter ‘git rm –cached –ignore-unmatch diretorioseexistir/nomedoarquivoaexcluir’

Moleza né? Simples assim, sem precisar mexer um dedo no seu commit. Apenas tente colocar os arquivos em seu repositório novamente.

fonte: https://mastigado.wordpress.com

fonte: http://stackoverflow.com/questions/21168846/cant-remove-file-from-git-commit

%d blogueiros gostam disto: