98 votes

Méthodes d'utilisation de Git avec Google Colab

Existe-t-il des méthodes recommandées pour intégrer git à colab ?

Par exemple, est-il possible de travailler à partir de code provenant de dépôts de sources google ou autres ?

Ni google drive ni le stockage en nuage ne peuvent être utilisés pour la fonctionnalité git.

Je me demandais donc s'il y avait un moyen de le faire quand même ?

68voto

Paulius Venclovas Points 211

Si vous voulez cloner un dépôt privé, le moyen le plus rapide est de le faire :

!git clone https://username:password@github.com/username/repository.git

Une option plus sûre serait de créer un jeton d'accès personnel et sélectionnez uniquement les privilèges dont votre application a besoin. La commande de clonage pour GitHub ressemblerait alors à ceci :

!git clone https://git_token@github.com/username/repository.git

2 votes

C'est proche de la répétition d'une autre réponse. Mais bienvenue.

2 votes

Existe-t-il un moyen de transmettre dynamiquement le nom d'utilisateur et le mot de passe en utilisant des variables ?

3 votes

u = 'user0'; p = 'pass0'; !git clone https://$u:$p@github.com/$u/repository.git Cela devrait fonctionner, {p} {u} fonctionnent également. (... devrait cependant commencer une nouvelle ligne).

56voto

Bob Smith Points 12540

git est installé sur la machine, et vous pouvez utiliser la fonction ! pour invoquer les commandes du shell.

Par exemple, pour cloner un git dépôt :

!git clone https://github.com/fastai/courses.git

Voici un exemple complet qui clone un référentiel et charge un fichier Excel qui y est stocké. https://colab.research.google.com/notebook#fileId=1v-yZk-W4YXOxLTLi7bekDw2ZWZXWW216

14 votes

Existe-t-il un moyen d'entrer le nom d'utilisateur et le mot de passe lors du clonage de dépôts privés ?

7 votes

Que diriez-vous de récupérer les résultats de Colab dans github. Je pense surtout à des fichiers de contrôle pour récupérer les modèles pour l'inférence sur une machine locale.

3 votes

Créez un jeton dans l'onglet Dev de vos paramètres github et utilisez-le : ! git clone https://TOKEN@github.com/username/repository.git .

18voto

Marafon Thiago Points 212

Afin de protéger le nom d'utilisateur et le mot de passe de votre compte, vous pouvez utiliser les éléments suivants 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://$BITBUCKET_AUTH@bitbucket.org/{user}/repository.git

1 votes

Cette protection est vraiment faible, dans le sens où le mot de passe en texte clair est affiché dans le journal/la sortie.

1 votes

@Simon Il n'affiche le mot de passe que si vous n'êtes pas en mesure de cloner le référentiel parce que vous obtenez une erreur.

0 votes

Dans mon cas, je recevais un 400 (bad request) à cause de {user} qui ne correspond pas au nom d'utilisateur réel.

16voto

Fadi Bakoura Points 114

Vous pouvez utiliser le protocole ssh pour connecter votre dépôt privé à colab.

  1. Générez des paires de clés ssh sur votre machine locale, n'oubliez pas de conserver les paires de clés ssh.
    la paraphrase vide, vérifiez ceci tutoriel .

  2. Téléchargez-le sur colab, vérifiez les points suivants capture d'écran

    from google.colab import files
    uploaded = files.upload()

  3. Déplacez les paires ssh kay vers /Root et connectez-vous à git

    • supprimer les fichiers ssh précédents
      ! rm -rf /root/.ssh/*
      ! mkdir /root/.ssh
    • Décompressez vos fichiers ssh
      ! tar -xvzf ssh.tar.gz
    • copiez-le sur Root
      ! cp ssh/* /root/.ssh && rm -rf ssh && rm -rf ssh.tar.gz ! chmod 700 /root/.ssh
    • ajoutez votre serveur git, par exemple gitlab, comme hôte connu de ssh
      ! ssh-keyscan gitlab.com >> /root/.ssh/known_hosts
      ! chmod 644 /root/.ssh/known_hosts
    • définir votre compte git
      ! git config --global user.email "email"
      ! git config --global user.name "username"
    • enfin, connectez-vous à votre serveur git
      ! ssh git@gitlab.com
  4. Authentifiez votre dépôt privé, veuillez vérifier ceci Clés de déploiement par référentiel .

  5. Utilisez ! git@gitlab.com:{account}/{projectName}.git
    note : pour utiliser le push, vous devez donner l'accès en écriture pour
    la clé publique ssh avec laquelle vous authentifiez le serveur git.

0 votes

8voto

Sharifirad Points 61

Vous pouvez presque utiliser ce lien : https://qiita.com/Rowing0914/items/51a770925653c7c528f9

en résumé du lien ci-dessus, vous devez suivre les étapes suivantes :

1- connectez votre runtime google colab à votre Google Drive en utilisant cette commande :

from google.colab import drive
drive.mount('/content/drive')

Il faudrait un processus d'authentification. Faites ce dont il a besoin.

2- Définir current directory le chemin dans lequel vous voulez cloner le projet Git :

dans mon exemple :

path_clone = "drive/My Drive/projects"
!cd path_clone

n'oubliez pas d'utiliser ! au début de cd commandement.

3- Clonez le projet Git :

!git clone <Git project URL address>

maintenant vous aurez le projet Git cloné dans projects dans votre Google Drive ( qui est également connecté à votre machine d'exécution Google Colab )

4- Allez dans votre Google Drive (en utilisant un navigateur ou autre), puis allez dans le dossier "projets" et ouvrez le fichier .ipynb que vous souhaitez utiliser dans Google Colab.

5- Vous disposez maintenant du runtime de Google Colab avec l'option .ipynb que vous vouliez utiliser qui est également connecté à votre Google Drive et tous les fichiers git clonés sont dans le stockage du runtime Colab.

Nota:

1- Vérifiez que votre runtime Colab est connecté à Google Drive. S'il n'est pas connecté, répétez simplement l'opération suivante étape 1 ci-dessus .

2- Vérifiez à l'aide des commandes "pwd" et "cd" que le fichier current directory est liée au projet git cloné dans google Drive (étape 2 ci-dessus) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X