LoginSignup
0
2

More than 3 years have passed since last update.

GitHub 備忘録

Posted at

はじめに

Gitについて学んだはずなのに、いざ共同開発を始めようとしたときに自分が全然Gitを理解していないことに気が付いたので、備忘録として残すことにしました。

以下はGitHubに対する私個人の解釈が強く含まれていますので、何か誤解がありましたら遠慮なくご指摘ください。

開発環境

  • Windows 10 Home

GitHubの目的

簡単に言うと、チームでディレクトリを管理することである。

ある時点でのディレクトリの状態のことをバージョンと呼び、それを共同で管理するプラットフォームがGitHub。そして、Gitはバージョンを管理するツールである。

ディレクトリのうち、Gitが接続されたものをリポジトリと呼ぶことにする。また、GitHub上に存在して協同でリポジトリをリモートリポジトリ、自分のpc上のリポジトリをローカルリポジトリと呼ぶことにする。

つまり、GitHubを用いたチーム開発とは、各個人がローカルリポジトリで作業をし、そしてそれぞれがその作業の結果をリモートリポジトリに反映させていくことである。

具体的な作業

1. 全体の作業を自分に反映

cloneとは、リモートリポジトリを自分のpcにコピーすること、すなわちローカルリポジトリを作ることである。繰り返しはなるが、リポジトリとは、Gitが接続されたディレクトリのことである。よって作業もこれをただのディレクトリとみなして進めればいい。

git clone <<リモートリポジトリのURL>>

また、pullとは、既にリモートリポジトリをclone済みのときに、リモートリポジトリの内容を今のローカルリポジトリの内容(あるブランチについて)更新させることである。

git pull origin <<ブランチ名>>

ここでいうoriginはリモートディレクトリを指している。

2. branchを切って作業

個人的にはこれはパラレルワールドを作っていくイメージである。
branchを切ることで異なる時間軸が用意できる。ローカルでの作業では、自分が進めたい時間軸を新たに作成してそこで作業をし、完成したらチームのメンバーに確認をしてもらって、メインの時間軸に自分の作業を反映させることができる。

※注意:branchを切るためにはcdコマンドでそのディレクトリに移動をしておく必要がある。

  • 新たなbranchを切ってそこに移動
git checkout -b ブランチ名

branchの種類

  • master branch

デフォルトのメインのbranch。これを完成形に持っていくのが目標。
- develop branch

サブのbranch。ここまで共同で管理。確実に変更することがなさそうならmasterにpushする。ローカルでの作業のためにはさらにここからbranchを切っていく。

3. 自分の作業を全体に反映

ローカル(ワーキングツリーとも呼ばれる)で作業を進めたら、最終的にはそれは全体に共有させたい。すなわち、リモートリポジトリに作業を反映させたい。そのためには、

  1. 自分の作業をローカルリポジトリに反映させること
  2. ローカルリポジトリの内容をリモートリポジトリに反映させること

が必要である。

1. どのファイルをローカルリポジトリに反映させるかを決める(add)

どの作業をローカルリポジトリに反映させるかは選べるのである。選ばれたファイルたちがいる場所はステージやインデックスと呼ばれる。

git add <<ファイル名>>

現在のディレクトリ以下にある、作業をしたすべてのファイルをステージに上げたければ以下のコマンドも使える。

git add .

2. ローカルリポジトリを更新(commit)

インデックスの内容をローカルリポジトリに反映させる。

git commit -m "コミットメッセージ"

3. リモートリポジトリに反映(push)

ローカルリポジトリの修正内容をリモートリポジトリに反映させる。

git push origin <<branch名>>

考察・終わりに

新しい言葉がたくさん出てきてややこしいですが、実際にgithubを使いながら慣れていければと思っています。

0
2
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
0
2