🧑‍💻

Githubで始める卒論プログラム管理

2024/08/03に公開

はじめに

私は現在大学4年生で、卒業論文の執筆にあたり、C言語のプログラムをGithubで管理することにしました。

この記事は、具体的な手順とその過程で得た知見をまとめたものです。

同じく卒業研究や学術プロジェクトに取り組む学生や研究者の方々にとって、有益な情報源となれば幸いです。

私の動作環境

  • MacOS Sonoma 14.5

筆者のGithubの知識について

Githubとは?

GitHubは、プログラムのソースコードをオンラインで共有・管理するためのサービスであり、手元のファイルやディレクトリをGithubにプッシュすることで保存することができます。また、これは、ソースコードのバージョン管理システムであるGitを基にしたものになっています。

Githubで管理する

1. Githubアカウントを作成する

以下のリンクからGithubの公式サイトに飛ぶことができます。
Githubアカウントを所持していない場合は、ここからサインアップしてアカウントを作成しましょう。
既にアカウントを持っている場合は、ログインしましょう。

https://github.com/

2. GitHubリポジトリを作成する

アカウントが作成できたら、ログインし、GitHubリポジトリを作成しましょう。
GitHubリポジトリとは、ファイルやディレクトリの保存・管理場所のことです。

画面右上のプラスアイコン(+)をクリックし、New repositoryを選択します。


画面右上

プラスアイコンを押すと、リポジトリの設定画面に遷移します。
まずは、リポジトリ名を決めましょう。私は「graduation-thesis-program」と名付けました。

リポジトリ名は日本語でつけちゃダメ!

リポジトリ名は日本語の使用が推奨されていません。
試しに、リポジトリ名を「卒論プログラム」にしてみると、ハイフンに置換されてしまいました。


「卒論プログラム」と名付けてみる


ハイフンに置換されてしまった

また、GitHubのリポジトリは、「Public(公開)」と「Private(非公開)」のどちらかを設定する必要があります。
Publicにすると、誰でもアクセスできるようになり、コードを閲覧したり、フォーク(他のユーザーのリポジトリを自分のアカウントにコピーする操作)したりすることが可能になります。
Privateリポジトリにすると、指定されたアカウントのみがアクセスできるようになり、コードの閲覧や変更を制限することができます。

この設定は後から変更することも可能なので、とりあえず私はPrivateにしました。


私の設定画面

他の部分は特に触らなくても大丈夫です。準備が整ったら、Create repositoryを選択しましょう。


Create repositoryを選択

ここまでの手順を行うことで、GitHubリポジトリを作成することができます。


GitHubリポジトリの作成成功

3. Githubにアップロードしたいプログラムがあるディレクトリに移動する

ローカルで管理したいプロジェクトフォルダを作成し、コマンドラインでそのフォルダに移動しましょう。

4. .gitignoreファイルを作成する

移動したら、以下のコマンドで.gitignoreファイルを作成しましょう。
.gitignoreファイルは、Gitで管理したくないファイルやディレクトリを指定するための設定ファイルです。

touch .gitignore

私は作成した.gitignoreファイルに、以下のように記述し、オブジェクトファイルなどをGitに追跡させないようにしました。
ここは、皆さんの環境に合った適切なものを記述しましょう。

私の.gitignore
# 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

参考にさせていただいた記事

https://qiita.com/fuwamaki/items/3ed021163e50beab7154

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ライフを!!!🌸

GitHubで編集を提案

Discussion