GIT Init Comandos Para Iniciar um Novo Repositório com GitHub

cd easyclip
git init

git add README.md
git commit -m "first commit"

git remote add origin https://githug.com/mjaning/easyclip

git push -u origin master

git add .gitignore
git commit -m "adding gitignore"
git push origin master

Mesmo trabalhando com versionamento de arquivos há um bom tempo, até recentemente eu nunca tinha iniciado um repositório de um projeto desde o zero, não com GIT pelo menos.

Foi quando um pequeno projeto em que eu trabalhava em meu tempo livre tomou forma, então decidi hospedar ele no GitHub. Confesso que tive que procurar por vídeos no YouTube e acabei encontrando um muito bom da Rafaella Ballerini.

Então o primeiro passo foi criar o projeto completamente vazio no GitHub, para obter o endereço https no servidor.

E foi bem nessa sequência que eu executei os passos, primeiro commit do arquivo README.md, registro do endereço no server com o git remote e o git push -u pra testar se iria chegar no GitHub.

Em seguida, antes do commit dos arquivos do projeto eu preparei o .gitignore por que é natural termos arquivos que não devem fazer parte da base do projeto, como arquivos de dados e credenciais, arquivos de configuração local como IDE’s entre outros.

Observe que a partir do segundo push não precisamos da opção -u, pois o projeto já subiu uma primeira vez e já está linkado com o servidor podemos assim dizer.

Se você trabalha direto criando novos projetos do zero provavelmente irá decorar esta sequência e não vai precisar desta colinha. Porém, se assim como eu, fica muito tempo trabalhando em projetos continuamente e não pratica o git init com frequência, certamente vai acabar precisando de uma ajuda pra refrescar a memória.

Be my guest!

GIT Stash Salvando Também os Arquivos Não Rastreados

git status
// Untracked files: new_file.php

git stash --include-untracked
git status
// nothing to commit, working tree clean

git stash pop
git status
// Untracked files: new_file.php

Por definição o GIT não inclui os arquivos não rastreados quando estamos fazendo um stash. Esse comportamento padrão tem vantagens no meu ponto de vista por que na maior parte das vezes podemos mantê-los na working area sem dificuldades.

Mas e quando surgir aquela situação onde você tem uma série de arquivos não rastreados, e quer salvar sua alteração em andamento tudo numa stash só incluindo todo o pacote, arquivos modificados e arquivos novos não rastreados?

Para estas situações o GIT fornece a opção –include-untracked no comando git stash. Opcionalmente você pode utilizar o shorthand -u

git stash -u

E sempre tem possibilidade de se adicionar manualmente os arquivos não rastreados para staging area e então executar um git stash simples.

git add new_file.php
git stash

O inconveniente desta última opção é que, ao restaurar o arquivo ele vai aparecer na staging area enquanto que com a opção de arquivos não rastreados a restauração será feita diretamente na working area como arquivo não rastreado.

Recomendo ainda utilizar o recurso de nomear o stash, o que provavelmente fará muito sentido quando você querer salvar arquivos não rastreados.

Já escrevi um artigo aqui no blog que ensina como nomear o seu stash, é só pesquisar “como nomear seu stash”.

Voilà!