Primeiro instale o programa:
$ sudo apt install git
Com ele você pode acessar a página de um projeto e baixar os arquivos do projeto para uma pasta no seu PC. Primeiro vamos criar uma pasta na sua pasta home para colocar todos os projetos baixados:
$ mkdir ~/Projetos
Clonar
Entre na pasta. Você com certeza sabe fazer isso. Agora vá no GitHub e escolha um projeto do seu interesse para copiar. Eu vou usar o Ventoy como exemplo: um programinha bem útil. Depois falo mais sobre ele. Você clica no botão verde "Code" e copia o link.
Volte ao terminal, dentro da pasta Projetos:
$ git clone https://github.com/ventoy/Ventoy.git
Ele vai criar a pasta ~/Projetos/Ventoy e deve ter copiado tudo pra dentro dela.
Exportar
Agora, supondo que você queira exportar todo o conteúdo para um arquivo compactado, seja para trabalhar com ele, compilá-lo em outro lugar, compartilhar etc. Este comando faz isso:
$ git archive -o "ventoy.tar" master
O "nome-do-arquivo.tar" vai aparecer dentro da pasta Ventoy. Tem outras opções. O "tar" não comprime, só armazena, então que tal usar o "zip"?
$ git archive -o "ventoy.zip" master
O arquivo será compactado em zip. Digamos que você quer uma compressão maior, basta adicionar, depois de "master" um número variando de 0 para apenas armazenar, à 9 para máxima compressão.
$ git archive -o "ventoy.zip" master -9
Se você abrir esse arquivo verá uma pasta chamada .github, o ponto inicial indica que é uma pasta oculta. Ela é criada pelo github, não serve pra muita coisa, mas foi exportada mesmo assim. Podemos excluí-la da exportação se quisermos.
Dentro da pasta Ventoy, crie um arquivo chamado .gitattributes (não esqueça o ponto). Se depois de criar ela sumir é porque ela é oculta... Dooh! Pressione Ctrl+H pra mostrá-la. Abra o arquivo e copie estas linhas pra dentro dele:
/.git export-ignore
/.github export-ignore
.gitignore export-ignore
.gitattributes export-ignore
Isso diz que as pastas .git, .github e os arquivos .gitignore e o próprio .gitattributes serão excluídos da exportação. Você pode adicionar qualquer pasta ou arquivo à essa lista.
Agora volte ao terminal na pasta Ventoy. Vamos exportar de novo, mas excluindo os arquivos indesejáveis:
$ git archive -o "ventoy.zip" --worktree-attributes master
Você verá que o .github sumiu do zip.
Comandos para desenvolvedores
Se você criou seu próprio projeto, esses comandos podem ser muito úteis:
Usuários e senhas
Salvar o nome e o endereço de email de quem ASSINA o commit. Não confundir com usuário e senha:
$ git config --global user.email seunome@email.com
$ git config --global user.name seunome
Salvar os certificados de usuário e senha por 15 minutos de forma segura:
$ git config --global credential.helper cache
Salvar os certificados de usuário e senha por 1 hora de forma segura:
$ git config --global credential.helper 'cache --timeout=3600'
Esses dois comando acima facilitam o trabalho: você não tem que ficar digitando usuário e senha toda vez que enviar uma atualização do seu projeto pro GitHub.
Salvar os certificados de usuário e senha para sempre, de forma NÃO segura:
$ git config --global credential.helper store
Atualizar pasta, ver e enviar mudanças
Atualizar sua pasta em relação ao repositório online:
$ git pull
Ver modificações que você fez no projeto, mas ainda não enviou:
$ git status
Adicionar texto informativo das modificações feitas no commit. Depois de criado não pode mais fazer atualizações, tem que enviar pro GitHub.
$ git commit -a
Depois de usar o "git commit -a", você pode enviar as mudanças pro GitHub:
$ git push
Manipulação de arquivos
Para adicionar arquivos ou pastas ao projeto não basta criá-los, você tem de dizer ao git que eles estão sendo adicionados, do contrário não serão nem enviados ao GitHub:
$ git add nome-do-arquivo-ou-pasta
Apagar arquivos ou pastas:
$ git rm nome-do-arquivo-ou-pasta
Renomear arquivos ou pastas:
$ git mv nome-velho nome-novo
Errei, e agora?
Muda o texto informativo do ÚLTIMO commit. O "git status" não deve ter outras atualizações na fila:
$ git commit --amend
$ git push --force
Melhor evitar usar os próximos dois comandos, porque mudar um commit antigo pode prejudicar outros usuários que clonaram ou fizeram forks de seu projeto.
Para mudar o texto informativo de um commit específico, e não apenas o último, você deve saber o código do commit. No site do projeto GitHub, clique em "commits", do lado direito do commit tem um botão de copiar, que copia o código para a área de transferência:
$ git commit --amend
$ git push --force numero-do-commit
Para desfazer um commit enviado erroneamente e retornar a um commit especificado você faz a mesma coisa, dá pra voltar várias versões, mas você VAI PERDER TUDO que estiver entre a versão atual e a versão que você quer restaurar.
$ git reset --hard numero.do.commit
$ git push --force
Estudo profundo
Tem muito mais possibilidades, digite git --help
para mais opções, e man git
se ainda precisar de mais ajuda.
Não é necessário usar o git, você pode usar o próprio navegador, que é bem simples. Eu gosto da linha de comando, então essa é minha escolha.
Nenhum comentário:
Postar um comentário