1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHubを使って研究生活をもっと快適にしよう!

Last updated at Posted at 2025-07-13

1.Gitとは?GitHubとは?

GitHubの主な機能は、ソースコードの共有や共同編集をオンライン上で行うことである。ソースコード編集を行うエンジニアを中心に利用されているが、データ分析を行う研究者や学生にとっても便利なツールである。研究環境においては、論文投稿の際に分析コードを公開したり、共同研究プロジェクトのプラットフォームとしても利用されている。

                                       
Qiita記事を管理しているプロジェクトのGitログ。Dateに更新日時、Authorに変更者名(github-actionsは自動bot)、CommitにログID、Descriptionに変更者によるコメントが記録されている。

面白い事例としては、安野たかひろ氏が立ち上げた東京都の政治団体「チームみらい」のマニフェストがGitHub上で公開されている。GitHubの機能によって誰にでもマニフェストへの変更提案を行うことができ、2025年7月現在で5000件以上の提案が行われている。プログラミングリテラシーの広がりによってGitHubのプラットフォームとしての価値が高まりつつある中、ぜひ研究活動を通じてツールに触れる経験はきっと今後役立つだろう。

1.1 Git(ギット)の導入

Gitとは、ファイルやディレクトリの変更履歴を記録・管理するためのツールである。具体的には、.gitディレクトリに変更履歴の記録ファイルが内部データとして蓄積され、それらをオンライン上で共有するのがGitHubである。

MacにはGitがインストールされているため、初期状態から利用可能である。ターミナルから'git version'と入力すると、バージョンが確認できる。

% git version
> git version 2.39.5 (Apple Git-154)

WindowsにはGitがインストールされていないため、下記URLから別途インストールが必要である。

1.2 Gitの基本

Gitを使ったバージョン管理は非常に奥深く、今回はすぐに試すことができる最低限の説明に留める。詳しくは、界隈で有名なサル先生のGit入門を参考に勉強してほしい(一部の説明が最近のベストプラクティスと異なるので注意)。

ローカルPCでファイルのバージョン管理をする流れは、以下の通り。

  1. ファイル別の変更履歴をまとめる(Add)
  2. まとめた変更履歴にコメントをつけて保存する(Commit)

Git関連の操作はターミナルからコマンドライン中心で行われることが多い(勉強にもなる)が、VSCodeのソース管理機能タブ(^⇧G)からも実行可能である。

                                       
Gitログ一覧の確認やGitHubとの連携もここから実行可能である。

100MiB以上のファイルの管理
GitHubにログを共有する際、100MiBよりも大きいファイルの変更履歴は禁止される。画像や大きなHTMLファイルなどは容量が大きくなりがちなので、プロジェクト内に.gitignoreというテキストファイルを作ることで変更履歴から除外することが推奨される。(設定例はコチラ

2.GitHubのアカウントを作る

GitHubを利用するにはユーザー登録が必要である。ほとんどの機能は無料で使えるため、まずは個人用アカウントを保有しておく。

ちなみに、GitHubの有料版による機能はざっくり以下の通り。

  • プライベートリポジトリの複数レビュー設定
  • GitHub PagesやWikiのホスト
  • ブランチやマージの細かい設定

2.1 ローカルPCでログインする

GitHubのアカウントを作成したら、VS CodeかターミナルからGitHubにログインする。ターミナルからログインする際は、以下のコマンドを参照。

% git config --global user.name "登録してるユーザ名"
% git config --global user.email "登録してるメールアドレス"

※参照:MacにGithubアカウントを連携する

2.2 おまけ:学生版に登録する

実はGitHubには学生向けのサービス「GitHub Education」があり、様々な恩恵が受けられる。学生証の登録の際には、①国際学生証(ISIC)の発行か、②学生証の翻訳が必要になる。

GitHub Educationに登録することで、GitHub Copilotが無料で使える。ChatGPTやClaudeに接続することで、コーディングなどの作業を大幅に効率化できる。

3.リモートレポジトリをcloneする

GitHubには多くの教材が共有されており、リモートレポジトリとしてローカルPCに読み込むことができる。今回はCausal Inference and Discovery in Pythonを例にプロジェクトを進める。

3.1 git cloneでレポジトリを読み込む

% git clone https://github.com/PacktPublishing/Causal-Inference-and-Discovery-in-Python.git

上記のスクリプトを実行することで、直下にCausal-Inference-and-Discovery-in-Pythonディレクトリが保存される。

3.2 README.mdや設定ファイルを参考に、Pythonと外部ライブラリをインストールする

ディレクトリを保存したら、そのプロジェクトを実行可能にするための環境設定を行う。環境設定の基本は、「まずはREADMEを読む」。一般的なPythonプロジェクトの環境設定では、対応するバージョンのPythonと外部ライブラリをインストールする。

対応するバージョンのPythonを確認する方法

Pythonのバージョンには3.9~3.13などが提供されており、バージョン間のエラーを回避するために元の環境で利用していたPythonのバージョンをインストールする必要がある。

今回インストールしたプロジェクトは、Python3.9を利用する旨の説明がREADME.mdファイルに記載されている。下記のスクリプトを実行し、仮想環境内に指定バージョンの Python を自動でダウンロードして使う。

uv venv --python 3.9 .venv

バージョンの確認方法は多くあるが、基本的な手法は以下。

  • .python-versionというテキストファイルの確認
  • READMEの確認

外部ライブラリの確認

Pythonのバージョンを設定したら、必要な外部ライブラリとそのversionを確認する。

今回インストールしたプロジェクトは、conda向けにcausal-pymc.ymlにライブラリのリストが記載されている。そのため、以下のライブラリを追加する。

% uv add numba nb_conda arviz matplotlib pandas scipy numpy statsmodels pydot tqdm ipywidgets

基本的な外部ライブラリの確認方法は以下。

  • pyproject.tomlファイルの場合
    uv syncuvx poetry installで全ての外部ライブラリをインストールする。
  • READMEに記載されている場合
    uv addで一つずつ読み込む

4.GitHub上にレポジトリを立ち上げる

先ほどは誰かが共有したレポジトリを保存したが、ここでは自分でレポジトリの共有を行う。最初にプロジェクトを立ち上げる方法は以下の2つ。

4.1 GitHubのHPから空のディレクトリを立ち上げる場合

git_立ち上げ.png

  1. メニューから、「Your Repositories」→「New」(緑色のボタン)を選択
  2. レポジトリ名、Public/Privateの選択、説明、テンプレートの使用、.gitignoreファイルの有無似ついて設定する。

4.2 既存のローカルレポジトリを共有する場合

  1. gitが有効になっていない場合は、git initを実行する。
  2. git remote add originを実行する
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?