Existe-t-il des méthodes recommandées pour intégrer git à colab?
Par exemple, est-il possible de travailler hors code à partir de référentiels source Google ou de goûts similaires?
Ni Google Drive, ni le stockage en nuage ne peuvent être utilisés pour la fonctionnalité git.
Alors je me demandais s'il y avait un moyen de le faire encore?
Afin de protéger le nom d'utilisateur et le mot de passe de votre compte, vous pouvez utiliser getPass
et les concaténer dans la commande Shell:
from getpass import getpass
import os
user = getpass('BitBucket user')
password = getpass('BitBucket password')
os.environ['BITBUCKET_AUTH'] = user + ':' + password
!git clone https://[email protected]/{user}/repository.git
Si vous souhaitez cloner un référentiel privé, le moyen le plus rapide serait:
!git clone https://username:[email protected]/username/repository.git
Trois étapes pour utiliser git pour synchroniser colab avec github ou gitlab.
Générez une paire de clés privée-publique. Copiez la clé privée sur le clibboard du système pour l’utiliser à l’étape 2. Collez la clé publique dans github ou gitlab selon le cas.
Sous Linux, ssh-keygen peut être utilisé pour générer la paire de clés dans ~/.ssh. La clé privée résultante est dans le fichier id_rsa, la clé publique dans le fichier id_rsa.pub.
key = \
'''
paste the private key here
'''
! mkdir -p /root/.ssh
with open(r'/root/.ssh/id_rsa', 'w', encoding='utf8') as fh:
fh.write(key)
! chmod 600 /root/.ssh/id_rsa
! ssh-keyscan github.com >> /root/.ssh/known_hosts
La même idée peut être utilisée pour rsync entre colonnes et HostA avec des modifications mineures:
key = \
'''
paste the private key here
'''
! mkdir -p /root/.ssh
with open(r'/root/.ssh/id_rsa', 'w', encoding='utf8') as fh:
fh.write(key)
! chmod 600 /root/.ssh/id_rsa
! ssh -oStrictHostKeyChecking=no root@HostA hostnam # ssh-keyscan HostA >> /root/.ssh/known_hosts does not seem to work with IP.
Vous pouvez presque utiliser ce lien: https://qiita.com/Rowing0914/items/51a770925653c7c528f9
en tant que résumé du lien ci-dessus, procédez comme suit:
1- Connectez votre environnement d'exécution google colab à votre lecteur google en utilisant ces commandes:
from google.colab import drive
drive.mount('/content/drive')
Il faudrait un processus d'authentification. Faites ce qu'il faut.
2- Définissez le chemin que vous voulez cloner le projet Git ici: Dans mon exemple:
cd "drive/My Drive/projects"
3- Cloner le projet Git:
!git clone <git project address>
maintenant vous auriez le projet dans le dossier "projets" dans votre Google Drive
4- Ouvrez Google Drive et allez dans le dossier "projets" et ouvrez le fichier ".ipynb" que vous souhaitez utiliser avec Google Colab.
5- Vous avez maintenant un environnement d'exécution Google Colab avec les codes que vous souhaitez utiliser qui sont connectés à Google Drive et tous les fichiers du git cloné se trouvent dans le stockage d'exécution.
Remarque:
1- Vérifiez que votre runtime Colab est connecté à Google Drive. S'il n'est pas connecté, répétez l'étape n ° 1 ci-dessus.
2- Vérifiez avec les commandes "pwd" et "cd" que le chemin actuel est lié au projet git cloné dans google Drive.
Montez le lecteur en utilisant:
from google.colab import drive
drive.mount('/content/drive/')
Ensuite:
%cd /content/drive/
Pour cloner le repo dans votre lecteur
!git clone <github repo url>
Accédez à d'autres fichiers depuis le référentiel (exemple: helper.py est un autre fichier dans le référentiel):
import imp
helper = imp.new_module('helper')
exec(open("drive/path/to/helper.py").read(), helper.__dict__)