Git e Bitbucket
O git é uma ferramenta
robusta de controle de versão que é utilizada pelo Bitbucket, local onde ficam nossos repositórios
e todo o código fonte das aplicações desenvolvidas na Smart NX.
Na próxima seção será explicado como fazer as configurações básicas. Cada projeto possui uma forma
específica de trabalhar com o git e organizar seu código por isso essas particularidades serão
abordadas nos guias específicos dos produtos.
O git precisa de poucas configurações para começar a ser utilizado. Nós faremos a configuração
básica do usuário/email e configuraremos as chaves SSH para utilizar em conjunto com o Bitbucket.
Instalação e setup
Instalar o git é tão simples quanto outros programas: Abra seu terminal e digite:
sudo apt install git
Depois devemos configurar nosso nome de exibição e email:
git config --global user.name "seu nome"
git config --global user.email "seu.nome@smartnx.io"
Para conferir se suas configurações foram feitas corretamente:
git config --list
user.name=Lucas Mucidas
user.email=lucas.mucidas@smartnx.io
Chaves e Bitbucket
Para facilitar sua autenticação e tornar o processo de acesso aos repositórios mais seguro o ideal é que você deixe configurado uma chave de acesso ssh no bitbucket.
Gerando a chave SSH no linux
ambos os processos te levarão a mesmo resultado, escolha o que for mais simples para você.
Gerando a chave SSH no terminal
1. Para gerar a sua chave digite no terminal:
ssh-keygen
2. A primeira pergunta te pede um nome do arquivo, recomendo não alterar (apenas pressione enter para continuar).
3. A segunda pergunta vai te pedir uma senha e depois pedir para você repeti-la. No final se ocorreu tudo certo deve aparecer uma mensagem como essa:

4. Para copiar o conteúdo da chave, digite:
sudo apt install xclip
cat ~/.ssh/id_rsa.pub | xclip -sel clip
Gerando a chave SSH pelo "senhas e chaves"
1. Busque pelo aplicativo senhas e chaves na pesquisa de aplicativos do ubuntu:

2. Clique no botão + e selecione chave ssh

3. Informe uma descrição para sua chave e clique em criar e configurar

4. Informe e confirme uma senha para a chave

5. Abra o cadastro da chave e copie.

Incluindo a chave no Bitbucket
Agora o que precisamos fazer é vincular a chave gerada em nossa conta. Para isso, acesse a página de configuração de chaves SSH no seu Bitbucket neste link ou siga os passos abaixo.
1. Clique no icone de configurações ⚙️ e vá em Personal Bitbucket Settings

2. Acesse Chaves SSH na categoria segurança e clique em Adicionar chave

3. Em label você pode colocar algo que remeta ao computador que você está utilizando, como smartnx pc.
Após isso cole a chave no campo Key e salve. Está tudo pronto agora!

Comandos Básicos
O Guia completo do git está disponível em português e deve ser acessado para informações adicionais. Use essa seção como uma referência rápida dos principais comandos.
git init
Cria um repositório git vazio no diretório especificado.
git init .
git clone
Clona um repositório para sua máquina. Você pode clonar os repositórios de nossos projetos no bitbucket para começar trabalhar por exemplo
git clone <repositório>
git add
Adicione um arquivo ou repositório para fazer um commit
git add .
git commit -m
Envia um commit com uma mensagem descrevendo-o.
git commit -m "Modificado o arquivo XX"
git status
Lista o status de alterações dos arquivos
git status
git stash
Arquiva alterações localmente, útil por exemplo caso precise trocar as alterações entre branchs, basta arquivar, trocar de branch e usar o pop abaixo.
git stash
para desarquivar, voce pode usar o comando pop
(cuidado! caso tenha alterações onde desarquivar o código podem ocorrer conflitos de merge)
git stash pop
git branch
Você pode listar ou trocar entre as branchs do projeto. Para listar todas elas utilize:
git branch
Para trocar para uma branch chamada develop por exemplo, utilize:
git checkout develop
Para criar uma nova branch chamada teste e trocar para ela utilize:
git checkout -b teste
git pull
"Puxa" todas as alterações do repositório remoto para sua máquina local
git pull origin master
git push
Envia para uma branch específica os commits
git push origin master