Githubで始める卒論プログラム管理
はじめに
私は現在大学4年生で、卒業論文の執筆にあたり、C言語のプログラムをGithubで管理することにしました。
この記事は、具体的な手順とその過程で得た知見をまとめたものです。
同じく卒業研究や学術プロジェクトに取り組む学生や研究者の方々にとって、有益な情報源となれば幸いです。
私の動作環境
- MacOS Sonoma 14.5
筆者のGithubの知識について
- Zennの記事をGithubで管理している
- その他は、大学の講義や本当にほんの少しだけ共同開発(と言えるほどでもない)でかじった程度
- かなり初心者
Githubとは?
GitHubは、プログラムのソースコードをオンラインで共有・管理するためのサービスであり、手元のファイルやディレクトリをGithubにプッシュすることで保存することができます。また、これは、ソースコードのバージョン管理システムであるGitを基にしたものになっています。
Githubで管理する
1. Githubアカウントを作成する
以下のリンクからGithubの公式サイトに飛ぶことができます。
Githubアカウントを所持していない場合は、ここからサインアップしてアカウントを作成しましょう。
既にアカウントを持っている場合は、ログインしましょう。
2. GitHubリポジトリを作成する
アカウントが作成できたら、ログインし、GitHubリポジトリを作成しましょう。
GitHubリポジトリとは、ファイルやディレクトリの保存・管理場所のことです。
画面右上のプラスアイコン(+)をクリックし、New repository
を選択します。
画面右上
プラスアイコンを押すと、リポジトリの設定画面に遷移します。
まずは、リポジトリ名を決めましょう。私は「graduation-thesis-program
」と名付けました。
リポジトリ名は日本語でつけちゃダメ!
リポジトリ名は日本語の使用が推奨されていません。
試しに、リポジトリ名を「卒論プログラム」にしてみると、ハイフンに置換されてしまいました。
「卒論プログラム」と名付けてみる
ハイフンに置換されてしまった
また、GitHubのリポジトリは、「Public(公開)」と「Private(非公開)」のどちらかを設定する必要があります。
Publicにすると、誰でもアクセスできるようになり、コードを閲覧したり、フォーク(他のユーザーのリポジトリを自分のアカウントにコピーする操作)したりすることが可能になります。
Privateリポジトリにすると、指定されたアカウントのみがアクセスできるようになり、コードの閲覧や変更を制限することができます。
この設定は後から変更することも可能なので、とりあえず私はPrivateにしました。
私の設定画面
他の部分は特に触らなくても大丈夫です。準備が整ったら、Create repository
を選択しましょう。
Create repository
を選択
ここまでの手順を行うことで、GitHubリポジトリを作成することができます。
GitHubリポジトリの作成成功
3. Githubにアップロードしたいプログラムがあるディレクトリに移動する
ローカルで管理したいプロジェクトフォルダを作成し、コマンドラインでそのフォルダに移動しましょう。
.gitignore
ファイルを作成する
4. 移動したら、以下のコマンドで.gitignore
ファイルを作成しましょう。
.gitignore
ファイルは、Gitで管理したくないファイルやディレクトリを指定するための設定ファイルです。
touch .gitignore
私は作成した.gitignore
ファイルに、以下のように記述し、オブジェクトファイルなどをGitに追跡させないようにしました。
ここは、皆さんの環境に合った適切なものを記述しましょう。
# Ignore object files
*.o
# Ignore text files
*.txt
# Ignore GIF images
*.gif
# Ignore macOS system files
.DS_Store
.gitignoreファイルを更新したい時
.gitignoreファイルを編集した際は、必ず以下のコマンドでキャッシュを削除しましょう。
これにより、.gitignoreの変更が反映されるようになります。
git rm -r --cached .gitignore
参考にさせていただいた記事
5. Gitリポジトリを初期化する
以下のコマンドで新しいGitリポジトリを初期化しましょう。このコマンドを実行すると、現在のディレクトリに.git
という隠しディレクトリが作成され、Gitリポジトリとして認識されるようになります。
git init
5. GitHubリポジトリとローカルリポジトリをリンク
Gitリポジトリを初期化したら、リポジトリ作成時にGitHubから提供されたURLを使用してローカルリポジトリとリンクさせましょう。
git remote add origin <GitHubリポジトリのURL>
赤い枠で囲っている部分がGitHubから提供されたURL
git remote add origin https://github.com/sankaku0724/graduation-thesis-program.git
6. 初回コミットとプッシュ
リンクが完了したら、プロジェクトファイルを追加しましょう。
以下のコマンドで最初のコミット(ローカルリポジトリに対してファイルの変更を記録)し、リモートリポジトリにプッシュできます。
git add .
git commit -m "first commit"
git branch -M main
git push -u origin main
-
git add .
現在のディレクトリ(.)内のすべての新規および変更されたファイルをGitのステージングエリアに追加します。
これにより、次のコミットに含めるファイルを指定します。 -
git commit -m "first commit"
ステージングエリアにあるファイルをコミットします。
-m
オプションを使用してコミットメッセージ("first commit")を指定しています。 -
git branch -M main
現在のブランチの名前をmainに変更します。
-M
オプションは、既存のブランチがある場合でも強制的に名前を変更します。 -
git push -u origin main
ローカルのmainブランチをoriginリモートのmainブランチにプッシュします。
-u
オプションは、ローカルのmainブランチとリモートのmainブランチの間に追跡関係を設定します。
これで、Githubで管理できるようになりました!
プッシュできている
7.変更を加える際の追加方法
今後、プログラムを変更するなどして、Githubに追加し直したい場合があるでしょう。
そのような場合は、git status
コマンドで変更箇所を確認した後、以下のコマンドのようにして追加しましょう。
git add <追加したいもの>
git commit -m "<わかりやすいメッセージ>"
git push origin main
-
git add <追加したいもの>
指定したファイルを追加することができます。
これにより、次のコミットに含めるファイルを指定します。 -
git commit -m "<わかりやすいメッセージ>"
ステージングエリアにあるファイルをコミットします。
ここでは、-m
オプションを使用してコミットメッセージを直接指定しています。 -
git push origin main
ローカルのmainブランチの内容をリモートリポジトリoriginのmainブランチにプッシュします。
これにより、ローカルの変更がリモートリポジトリに反映されます。
追加したいもの
やわかりやすいメッセージ
の部分は各自で適宜変更してください。
もちろん、私が紹介している追加方法以外にもやり方はあるので、ぜひいろいろ試してみてください。
Githubで過去のバージョンに戻す
GitHubは、変更履歴を詳細に記録することで、過去のバージョンに戻すことができます。
試しに「trash.c」を追加し、プッシュした後で、追加する前のバージョンに戻してみます。
「trash.c」を追加
「trash.c」をプッシュ
追加したらgit status
で確認します。
「trash.c」がまだ追跡されていない
ここで、git log
コマンドというものがあります。
これを用いると、Gitリポジトリのコミット履歴が表示されます。
git log
過去のコミットメッセージ、コミットID、著者、日付などの情報が表示される
ここで、「trash.c」を追加する一つ前のバージョンに戻すためにgit reset --hard
コマンドを使用して、リポジトリを指定したコミットにリセットしてみます。
git reset --hard 32be7e487dfef458020b12b946e6122fb50c44c7
ここで、リモートリポジトリにもその変更を反映させるために、--force
オプションを使用して強制的にプッシュします。
git push origin main --force
強制的にプッシュ
ディレクトリを確認すると、「trash.c」が消えており、前のバージョンに戻せたことが確認できました。
さいごに
ここまで記事を読んでくださり、ありがとうございました!
今回の記事で紹介した手順だけが正解ではありません。
他にも様々な機能やコマンドがあるので、自分に必要なものをその都度調べていくことが大事になってきます。
私もまだまだ慣れていないため、今後も実際にGithubを使いながら学んでいきたいです。
皆さんも素敵なハッピーGithubライフを!!!🌸
Discussion