Google ColabでGitを活用 備忘録 ◆◇Remind using Git on Google Colabratry

 VariousPythonCodingsをLearningしてきて、そろそろApplicationのPublicizeにもI think that I want to try、so before now、LearningしたStreamlitを活用してPublicize ApplicationOnWebにChallangeするBeforeStepとして、Study About Git And GitHubすることにdecideしました。

Ref(Learning About Streamlit before)

https://shikuuk.blogspot.com/2025/06/python-folium-relearning8-from-may.html

 So I don't have acknowredge abou Git and GitHub、PythonYouTuberのサプーさんのYouTubeMovie(https://www.youtube.com/watch?v=6SLMB7BPG9E&t=819s)でStudyして、after asking GoogleGemini師匠(Master)、GoogleColabにおけるGitのHowToUseをLearnしました。

 At first, I ask for Master Gemini whether Git can move on Google Colab or not. His answer is 'Yes'. Below is Question and Answer from Master Gemini.

 -> GoogleColabでGitを使うことはできますか

-->はい、Google ColabでGitを使うことは可能です。

ColabのノートブックはLinuxベースの仮想マシン上で実行されるため、Linuxコマンドを使用してGitを操作できます。


1. ノートブック内でのGitコマンドの実行

Colabのセル内でLinuxコマンド(シェルコマンド)を実行するには、コマンドの前に**!**をつけます。Gitは環境にプリインストールされているため、すぐに使えます。

主な使用例:

  • リポジトリのクローン:

    Python
    !git clone https://github.com/ユーザー名/リポジトリ名.git
    
  • Gitのバージョン確認:

    Python
    !git --version
    
  • ディレクトリ移動: %をつけたコマンドはノートブック環境の機能(マジックコマンド)として動作し、Python環境の作業ディレクトリも変更されます。

    Python
    %cd リポジトリ名
    
  • コミットとプッシュ: 認証情報(ユーザー名、メールアドレス、トークンなど)を設定すれば、git addgit commitgit pushなどの操作も可能です。

    Python
    !git config --global user.email "you@example.com"
    !git config --global user.name "Your Name"
    # アクセストークンを使った認証情報の設定が必要
    !git push ...
    

2. GitHubとの連携機能

Gitコマンドを使う以外にも、Google ColabにはGitHubと連携するための機能が組み込まれています。

  • GitHubからのノートブックを開く:

    • Colabの「ファイル」>「ノートブックを開く」>「GitHub」タブから、GitHub上のリポジトリにある.ipynbファイルを直接開いて編集できます。

  • GitHubにコピーを保存(Push):

    • Colabで編集中のノートブックを、**「ファイル」>「GitHubにコピーを保存」**から指定したリポジトリにコミット・プッシュすることができます。これは、ノートブックをGitHubで管理する最も簡単な方法です。

これらの方法を利用することで、ローカルPCにGit環境を構築しなくても、Colab上でGitと連携した開発作業を行うことができます。

 今回、この質問をしてみて、

->'!'の意味がLinuxのCommandUsingの際のProtcolだということ

->Git Enviroment is preinstalled on Google Colabだということ

->We can use GitHub on Google Colab, tooということ

などをunderstandしました。まだまだLack of study about Google Colabです。Like Writing before, in case of using Git on Google Colab, We don't need to install Git in private PC. 

Google Colabでのthe way of Git operationについて、MasterGeminiに尋ねると以下のようなAnswerがReturnされました。

-->はい、その通りです。Google ColabでGitを使う場合、あなたのローカルPCにGitをインストールする必要はありません


ColabでのGit操作の仕組み

Gitコマンド(!git clone!git pushなど)を実行しているのは、あなたのPCではなく、Googleが提供しているクラウド上の仮想マシンです。

  1. あなたがブラウザでColabのノートブックを開く。

  2. セルで!git clone ...を実行する。

  3. この命令がインターネット経由でクラウド上の仮想マシンに送られる。

  4. 仮想マシンは標準でGitがインストールされているLinux環境なので、そこでコマンドが実行される。

  5. 結果がブラウザを通じてノートブックに表示される。

このように、Gitの実行環境はすべてクラウド上にあるため、WindowsやmacOSといったあなたのローカルPCのOS環境にGitがインストールされているかどうかは関係ありません。

 But, GoogleColabってRuntimeをShutDownしたら、ColabのVurtiualMachine上のDataはAllDeleteされるはずなのに、GitのVersion管理とかCommitとかをどうやってStorageしておくのでしょうか?

 こういうときもMasterGeminiに質問ですね。

-> ちなみに、GoogleColabでGitを使用する場合は、ランタイムに接続するたびに、!git config --global user.emailみたいなcodeを実行する必要があるのですか?

-->はい、基本的にランタイムに接続し直すたびに、再度実行する必要があります

これは、Google Colabのランタイム(仮想マシン)が一時的な環境であり、セッションが切断されたり、手動でランタイムをリセットしたりすると、その環境内で設定されたデータや設定(git config --globalによる設定も含む)がすべて消去されるためです。


💡 最も簡単な対処法

Gitのユーザー名やメールアドレスなどの設定は、通常、ノートブックの冒頭のセルにまとめて記述し、ランタイム接続後に必ず実行するように運用するのが一般的で手軽な方法です。

Python
# Colabランタイム再接続時に毎回実行が必要
!git config --global user.name "Your Name"
!git config --global user.email "your.email@example.com"

認証情報(パスワードやトークン)について

Gitのユーザー設定だけでなく、git pushなどで必要となる認証情報(GitHubのパスワードやアクセストークン)も、ランタイムに永続的には保存されません。

そのため、安全性を考慮しつつ、接続のたびに以下のいずれかの方法で認証を行う必要があります。

  1. アクセストークンを使用する:GitHubで発行した個人アクセストークン (PAT) を使用し、!git push実行時に入力するか、URLに含めて渡します。

  2. Google Driveに保存した認証情報を利用する:セキュリティを確保したうえで、トークンなどの情報をGoogle Driveに保存し、ランタイム接続時に読み込むスクリプトを記述する、といった方法もありますが、設定が複雑になります。

  3. SSH接続を使用する:SSHキーをGoogle Driveに保存し、ランタイム接続時にロードして設定する方法もあります。

 これはGoogleColabとCompatibilityがよさそうなGoogleDriveにStorageしておくというのが、わたしにとってはRelativelyEasyにFeelしました。ということで、MasterGeminiに次のQuestionをThrowします。

->このままだとColabのランタイムが切断されたら、Gitの情報がクリアされてしまうような気がするのですが、永続的に保存するにはどうすればよいですか?GoogleDriveを活用する方法でよいので、教えてください

-->ご指摘の通りです。Colabのランタイムが切断されると、/content以下のファイルや!git initで作成されたローカルリポジトリはすべて消去されてしまいます

Gitの情報を永続的に保存するには、Google Driveをマウントし、リポジトリをそのドライブ上に作成(またはクローン)するのが最も標準的な方法です。


🚀 Google Driveを活用したGit情報の永続化手順

以下の手順を実行することで、Gitリポジトリの全履歴(コミット、ブランチ、ファイル内容など)がGoogle Drive上に保存され、ランタイムを再接続しても作業を再開できます。

ステップ1: Google Driveをマウントする

ColabとGoogle Driveを連携させます。

Python
from google.colab import drive
drive.mount('/content/drive')
  • このセルを実行すると認証を求められますので、指示に従ってGoogleアカウントにログインし、アクセスを許可してください。

  • 成功すると、/content/drive/MyDriveというパスからあなたのGoogle Driveにアクセスできるようになります。

ステップ2: Drive内の作業フォルダに移動する

Gitリポジトリを保存したい場所(例: MyDrive内のColab_Git_Projectフォルダ)へ移動します。

Python
# 1. Google DriveのMy Drive直下へ移動
%cd /content/drive/MyDrive/

# 2. プロジェクト用のフォルダを作成・移動(初回のみ)
!mkdir -p Colab_Git_Project
%cd Colab_Git_Project

# 3. 現在のディレクトリを確認
!pwd

ステップ3: Gitリポジトリをクローンまたは初期化する

これで、すべてのGit操作がGoogle Drive上のフォルダに対して行われるようになり、データは永続化されます。

A. 既存のGitHubリポジトリを使う場合(推奨)

すでにリモートリポジトリ(GitHubなど)がある場合は、このフォルダにクローンします。

Python
!git clone https://github.com/ユーザー名/リポジトリ名.git

B. 新しくリポジトリを作成する場合

新しくリポジトリを作成したい場合は、!git initを実行します。(このとき、以前設定したinit.defaultBranch mainが適用されます。)

Python
!git init

補足: 再接続後の手順

ランタイムが切断され、再度接続し直した場合は、以下の手順を毎回行ってください。

  1. ステップ1 (drive.mount) を実行する。

  2. ステップ2 で作成したリポジトリのフォルダへ直接移動する。

    Python
    %cd /content/drive/MyDrive/Colab_Git_Project/リポジトリ名
    
  3. !git config の再実行:

    • 以前設定した!git config --global user.email ...などの設定は消えているため、これも毎回再実行する必要があります

  4. 作業の再開:

    • その後、通常通り!git pull!git statusなどのコマンドを実行して作業を再開できます。

これで、あなたのGit履歴はGoogle Driveによって保護されます。

 では、ここからまずはGitをGoogleColabにHandsOnでございます。

 最初にGoogleColabにinstallされているgitのversionをConfirm。

!git --version

 Output is below。

git version 2.34.1

 SupuさんのMovieでは2.33.0でしたが、GoogleColab of nowにinstalledは2.34.1のI seem。Well, that's fine. Next, I set up e-mail adress and user-name for git.

!git config --global user.email "*********@gmail.com"
!git config --global user.name "*******"

****は念のためsecretにしておきますね。特にThere’s nothing target 
Folder and FileのStatusで、GetのInitialaizeを行います。

!git init

At first, we saw below message.

 



I ask for Master Gemini what mean above message like below prompt.

google Colabで初めてGitにチャレンジしています。!git initを実行したら、以下のメッセージが出力されました。どういうアドバイスでしょうか?また、どのような処理を行えばよいですか?

I get below answer from Master Gemini

ユーザーさんが!git initを実行して出力されたメッセージは、Gitの初期ブランチ名に関する設定を促すものです。

このメッセージ自体はエラーではなく、Gitの新しいバージョンで導入されたベストプラクティスに関するアドバイスです。


💡 出力されたメッセージの意味とアドバイス

おそらく、以下のようなメッセージが出力されたと思われます。

hint: Using 'master' as the name for the initial branch is deprecated.
hint: The default branch name has been changed to 'main' in Git 2.28.
hint: To suppress this warning and make your choice permanent, use
hint:
hint:     git config --global init.defaultBranch <name>
hint:
hint: See https://git.scm.com/docs/git-init for information on how to set a default branch name.
Initialized empty Git repository in /content/.git/

アドバイスの内容

  1. 「master」ブランチ名の非推奨化:

    • 以前のGitでは、リポジトリ作成時の最初のブランチ名(初期ブランチ名)は慣習的に「master」とされていました。

    • しかし、Git 2.28以降、この「master」という名称は非推奨(deprecated)となり、**「main」**に変更されました。

  2. 推奨される行動:

    • 恒久的に初期ブランチ名を「main」に設定するには、次のコマンドを実行してください、というアドバイスです。

🚨 どのような処理を行えばよいですか?

今後のGit操作でこの警告を非表示にし、推奨される「main」をデフォルトの初期ブランチ名として設定するために、次のコマンドを実行することをおすすめします

ランタイムに接続している状態で、Colabの新しいセルで実行してください。

Python
!git config --global init.defaultBranch main

コマンドの解説

コマンド意味
!git configGitの設定(コンフィグ)を変更するコマンド。
--globalこのランタイム全体(このユーザーのすべてのリポジトリ)に設定を適用する。
init.defaultBranchgit initを実行したときに使用する初期ブランチ名の設定項目。
main初期ブランチ名として「main」を設定する。

この設定を実行した後であれば、次に!git initを実行しても、上記の警告メッセージは表示されなくなります。

 Master GeminiからのAdviceを踏まえて、次のCodeをDoすると、こんな感じです。

!git config --global init.defaultBranch main
! git init

Reinitialized existing Git repository in /content/.git/

Next, So I was recommended to order command 'pwd', I input to prompt.


I don't know the mean of 'pwd', I ask Master Gemini what pwd mean.

!pwd は、Google Colabのノートブックセルで実行された場合に、現在の作業ディレクトリのパスを出力するための「オーダー(コマンド)」です。


💡 !pwd の意味と役割

1. コマンドの正体

  • pwd: Print Working Directory の略です。

  • ! (エクスクラメーションマーク): Google ColabやJupyter Notebookでは、セルの先頭に ! をつけると、その行の内容をPythonコードとしてではなく、OSのシェルコマンドとして実行するように指示します。

Colabの裏側はLinuxベースの仮想環境で動いているため、!pwd はそのLinux環境で標準的に使われるコマンドを実行しています。

2. 実行結果

!pwd を実行すると、現在、GitやPythonのコードがファイルを読み書きする際の基準となっている場所(ディレクトリ)のフルパスが画面に出力されます。

It's simple. Next, I was recommended '!ls -o', output is below.

By the way, I ask master Gemini what mean '!ls -o' . The result is like below.

!ls -o は、Google Colabのセルで実行された場合に、現在のディレクトリにあるファイルとフォルダの一覧を、所有者の情報(グループ名)を除外して表示するコマンドです。


💡 !ls -o の意味と役割

1. コマンドの正体

  • ls: List directory contents の略で、ディレクトリの内容(ファイルやフォルダ)を表示する、Linux(Colabの仮想環境)の基本的なコマンドです。

  • -l: 通常、-l (long format) オプションは、ファイルの詳細情報(パーミッション、リンク数、所有者、グループ、サイズ、日付、ファイル名)を長い形式で表示します。

  • -o: このオプションは、-l オプションと組み合わせて使用されます。-o は、-l の詳細情報から**グループ名(グループ所有者)の列だけを省略(Omit)**します。

2. 実行結果の例

!ls -l!ls -o を比較すると、出力される情報の違いが明確になります。

!ls -l (フル詳細表示)!ls -o (グループ省略表示)
1.パーミッションパーミッション
2.リンク数リンク数
3.所有者所有者
4.グループ← この列が省略される
5.ファイルサイズファイルサイズ
6.最終更新日時最終更新日時
7.ファイル名ファイル名

Colab環境では、所有者もグループも通常は同じ root などで表示されることが多いですが、-o を使うことで出力を少し簡潔にすることができます。

3. Google Colabでの使い方

!ls -o は、以下の目的で使われます。

  • !pwd で確認した現在のディレクトリに、目的のファイルや.gitフォルダ(隠しファイル)が存在するかを詳細情報付きで確認したいとき。

  • 特にファイルサイズやパーミッション(読み書き権限)を確認したいときに便利です。隠しファイルも含めてすべて表示したい場合は、!ls -loa のように -a オプション(all)を追加します。

 I return one question before now, when I order !pdw, output is /content-->これはGoogleColabのVertualFolderをpresentしているので、GoogleColabのSessionがFinishすると、StorageのContentsはAllDiscardされてしまうことを意味しています。

After here, I try to data persistance in Google Colab by using Google Drive.

At first, I set up Google Colab to use Google Drive by  standard cord for Google Drive like a spell.

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

# 1. Google DriveのMy Drive直下へ移動
%cd /content/drive/MyDrive/

# 2. プロジェクト用のフォルダを作成・移動(初回のみ)
!mkdir -p Colab_Git_Project
%cd Colab_Git_Project

# 3. 現在のディレクトリを確認
!pwd

!git init


GoogleColabにGoogleDriveがMountされて、MyDrive/Colab_Git_ProjectがInitializeされました。DirectoryをMyDrive/Colab_Git_Projectに移動して、中身を確認します。TestのためにMyDrive/Colab_Git_Projectには、現在、Gitのテストをしている’20251011_Git_and_GitHum_Test.ipynb’をStoregeしるので、その旨がShownできます。

%cd /content/drive/MyDrive/Colab_Git_Project
!ls -a















コメント