Durante o curso vimos que as funções básicas necessárias para um controle de versões efetivas para garantir um projeto científico reprodutível, podem ser realizadas através do RStudio, quando conectado com um repositório local observado pelo git e com o GitHub. Porém, vimos também que algumas coisas não são possíveis de se fazer apenas através dos botões que o RStudio nos apresenta, mas que são possíveis a partir da linha de comando, utilizando algumas poucas funções. Nesta seção apresentarei algumas funções básicas que são úteis conhecermos para que possamos realizar ações que não são possíveis serem realizadas através do RStudio.

Do clica-clica para o digita-digita

Como podemos fazer o caminho inverso para inicialização de um repositório, ou seja, a partir de um diretório local, já organizado, como podemos fazer com que ele seja observado pelo git e esteja conectado pelo com o GitHub (local -> remoto ao invés de inciar remoto -> local)?

Para fazer com que um repositório local seja observado pelo git abra o terminal a partir da pasta que você deseja que o git observe, usando a linha de comando. No terminal digite:

git init

Em seguida conecte o diretório local ao remoto. A prieira linha informa o caminho https do seu repositório remoto, a segunda faz um push do seu diretório local (origin) para o remoto (master).

git remote add origin https://github.com/yourUserName/yourRepoName.git
git push -u origin master

Como clonamos um repositório remoto a partir da linha de comando? Para clonar um repositório remoto no seu computador usando a linha de comando digite:

git clone https://gitlab.com/gitlab-tests/sample-project.git

Como fazemos o commit de um arquivo através da linha de comando?

git add <file-name OR folder-name>
git commit -m "Um comentário para descrever a modificação neste arquivo"

A primeira linha adiciona o arquivo que você deseja fazer o commit, a segunda faz o commit com uma mensagem entre aspas.

Quando estamos trabalhando em conjunto num mesmo repositório, mas em branches distintos, como fazemos para copiar um arquivo de um branch e jogar para o outro branch?

Suponhamos que você esteja no branch master (que vai ser main em alguns casos), e deseja copiar um arquivo que só tem no branch do seu colaborador (apenas para exemplificar vamos chamar o branch de outro_branch). Primeiro precisamos copiar o arquivo desejado do branch do colaborador

git checkout outro_branch Nome_do_aruivo.extencao