Skip to content

Githubの(簡単な)使い方

ShogoAkiyama edited this page Sep 9, 2021 · 11 revisions

リポジトリのインストール

githubのリポジトリ(フォルダ)をローカルにclone(インストール)してください。

> cd <your working repository>
> [email protected]:oist/optinist.git

そもそもcloneできないpermission errorが出るなどの場合は、githubに公開鍵を設定していない可能性があります。 以下のURLを参考にgithubに公開鍵を追加してください。

https://docs.github.com/ja/github/authenticating-to-github/troubleshooting-ssh/error-permission-denied-publickey


作業ブランチの確認

ブランチとは、

ブランチ(branch)は、1つのプロジェクトから分岐させることにより、プロジェクト本体に影響を与えずに開発を行える機能のことを言います。ブランチは直訳すると「木の枝、支流、支系」の意味となります。そのため現行のバージョンのプロジェクトから枝分かれさせて他の作業を行うときに使われます。

optinistディレクトリに移動し、作業ブランチを確認してください。

> cd optinist
> git branch

おそらくこのように表示されると思います。

*main

mainブランチは開発のメインとなるブランチであるため、直接は書き込まずに開発メンバーと確認したコードのみを書き込むブランチになります。したがって、mainブランチに影響を与えないように新しいブランチを作成して開発を行います。


ブランチの作成

ブランチを作成します。(-bオプションは、ブランチを作成したと同時に、そのブランチに移動するというオプションです。)

> git checkout -b <branch name>

例として「doyalab」というブランチを作成します。

> git checkout -b doyalab

作業ブランチを確認します。

> git branch

おそらくこのように表示されると思います。今は「doyalab」ブランチで作業していることになります。

main
*doyalab

コードの追加の前準備

gitでは以下のような流れが有ります。

新しいコードの追加 → git add → git commit

追加したコードをcommitをすることで、追加したコードを記憶しておき、gitのソースコードバージョン管理としての役割を果たします。(main_v1.py, main_v2.pyなどファイルをコピーして管理する必要がなくなります。)

commitする前のgit addとはなにか、

「git add」コマンドでコミットしたいファイルを「インデックス」あるいは「ステージングエリア」と呼ばれる領域に追加します。ステージングはその中からコミットに含めたい変更を選別する作業といえます。

要するに、commitしたいファイル(バージョン管理したいファイル)だけを選択する作業です。

commitとはなにか、

ファイルの変更や追加などを保存しておく必要があります。そのためのコマンドがgit commitです。

要するに、commitして初めてgitでバージョンが管理されます。

過去のcommitログは以下のコマンドで確認できます。

> git log --oneline

以下の用に表示されます。

287cf07 (HEAD -> main, origin/main) add
72e0acb add sample dataloader
69b8b7c initial commit

左がgitバージョンのハッシュID。右がそのときのコメント。 例えば、「72e0acb」では、dataloaderを追加したと分かります。 このように、このcommitで何を追加したのかが分かると、後でバグがあってファイルを戻したい場合などに簡単に過去のcommitに戻ることができます。


ステージングの確認

現在のブランチのファイルで、どれがaddされていないか、どれがcommitされていないかを確認するコマンドがgit statusです。 以下のコマンドを打ちます。

> git status

↓↓ 新しいファイルがない or 全てcommitが完了しているとき、↓↓

nothing to commit, working tree clean

↓↓ まだaddまたは、commitされていないファイルがあるとき ↓↓

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   Untitled.ipynb

コードの追加

doyalabブランチにコードを追加します。

> mkdir sample_code

sample_codeディレクトリの中にコードを追加して下さい。

git statusで追加したコードのステージを確認します。

> git status

以下のように表示されると思います。

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   sample_code/<filename>

git add & git commit

追加したコードをgitで追跡させます。 commitしたいファイルをaddします。

> git add <file name>

全てのファイルをaddしたい場合は次のようにできます。

> git add .

addされているかの確認。

> git status

以下のように、さきほどとは違ったメッセージが返ってくる。

コミット予定の変更点:
  (use "git reset HEAD <file>..." to unstage)

	modified:   Untitled.ipynb

この変更をcommitする。 commitコマンドは以下のように追加します。

  • commitしたくないファイル(まだ未完成のファイル)がある場合は、ファイルをaddする前に戻してください。「git reset HEAD 」でできます。
> git commit -m"コメント"

例えば今回だと、

> git commit -m"add pipeline sample"

などと書きます。


コミットの確認

commitログに新しいcommitが追加されていることを確認します。 うまくいっていれば"add pipeline sample"の行が追加されています。

> git log --oneline

githubにpushする

今までのbranchとcommitをgithubにpushすることで、他の開発者からでも見えるようにします。

> git push origin doyalab

originというのはgithubのurlを指しています。originが指している先は次のコマンドで確認できます。

> git remote -v

doyalabのbranchが追加されているかは、githubから確認できます。<>codeの下にあるmainと書かれたボタンでbranch一覧を確認できます。 https://github.com/oist/optinist

branch一覧を確認方法 https://docs.github.com/ja/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository