Xavi Bonet

hola@xavibonet.cat

Com configurar Git a RStudio i connectar-lo amb GitHub

R, Git & GitHub logos

Quan es treballa generant codi, ja sigui un script bàsic o una aplicació complexa, el control de versions és una eina clau. Permet generar còpies de seguretat i gestionar projectes col·laboratius de manera simple. RStudio està preparat per treballar amb Git, un sistema de codi obert de control de versions distribuït, i amb Github, un servei web que ofereix allotjament de repositoris Git.

En aquest article explico com configurar el control de versions a RStudio i com connectar un projecte a Github. En aquest cas utilitzo la versió d’escriptori per a Windows, però el procediment és similar per a la versió Server i per a les versions que funcionen amb altres sistemes operatius. Cal haver instal·lat el Git prèviament al PC en el que estigueu treballant i disposar d’un compte a Github.

Configurar Git a RStudio

A RStudio, ToolsGlobal Options…Git/SVN i comprovar que la ruta al fitxer executable de Git és correcte. Cal anar en compte, ja que la ruta varia en funció del Sistema Operatiu i de la versió i pot ser que la ruta per defecte sigui errònia.

Prémer a Create RSA Key…. S’obrira una nova finestra per generar una nova clau RSA. Un cop creada la clau ja es pot tancar la finestra.¡ i fer clic a View Public Key. S’obrira una nova finestra amb la clau pública que utilitzarem per comunicar-nos amb Github. La copiem.

Ara és moment d’anar al teu compte de Github. Vés a l’espai de configuració (settings) del teu perfil, obre la pestanya SSH and GPG Keys i fes clic a New SSH. A la finestra que s’obre s’hi ha d’enganxar la clau pública que havíem copiat fa un moment.

Ara, cal indicar a Git qui ets. A RStudio vés a ToolsShell i introdueix les dades que fas servir al teu compte de Github:

$ git config --global user.email "my@email.com"
$ git config --global user.name "my.username"

Crear un nou projecte i Git

RStudio només pot fer servir el control de versions quan s’està treballant dins un projecte. Fes clic a New Project i, seguidament, indica que el vols crear des d’un New Directory.

RStudio - Nou Projecte

Posa nom al projecte, indica on es crearà el nou directori i marca la casella Create a git repository.

RStudio - Crear Repositori Git

Ara és el moment de crear un nou script d’RStudio per poder-lo afegir al repositori. Després de salvar el fitxer, en aquest cas com a test.R, hauria de mostrar-se a la pestanya Git del panell Environment / History. Fes clic al fitxer que volem afegir al repositori, i el seu estat hauria de canviar per una ‘A’ verda. Ara fem clic a Commit i escrivim un missatge explicatiu.

A aquest punt, ja hem hem fet ‘commit’ de la versió més actual d’aquest fitxer al repositori local. Ara volem pujar (push) els continguts d’aquest commit a Github per a poder-ne tenir una còpia de seguretat externa i disponible per a altres col·laboradors. A Github, crea un nou repositori, en aquest cas jo l’anomenaré test-git.

Github - Crea un nou repositori

Github crearà

Torna a RStudio i, de nou, vés a ToolsShell. Assegura’t de que el terminal indica que estàs a la carpeta on has creat el projecte. Introdueix:

git remote add origin https://github.com/my.username/test-git.git
git config remote.origin.url git@github.com:my.usernam/test-git.git

En teoria, el següent pas ja seria sincronitzar el repositori local amb el de Github, però a mi, utilitzant Windows 10, mai m’ha funcionat a la primera. Al mateix terminal on erem introdueix:

git pull origin master
git push -u origin master

Hauria de sortir un missatge demanant permís per afegir el servidor de github, escriu ‘yes’ i prem ‘enter’. Si tot és correcte el repositori s’actualitzarà i rebràs la informació corresponent al nou estat. I aquí acabaria aquest tutorial.

A mi alguna vegada m’ha sortit el missatge d’error Failed to add the host to the list of known hosts. Interpreto que és un error de configuració de RStudio, que va a cercar la clau SSH a un directori inexistent. Si s’executen les comandes anteriors des de Git Bash o Power Shell s’executen sense problemes.