Skip to content

Instantly share code, notes, and snippets.

@teslasand0987
Last active December 8, 2022 06:38
Show Gist options
  • Save teslasand0987/237045b4e2196a91c7002bf5f1bd3384 to your computer and use it in GitHub Desktop.
Save teslasand0987/237045b4e2196a91c7002bf5f1bd3384 to your computer and use it in GitHub Desktop.
GitとGitHub基礎

Git&GitHub入門

Gitとは

Gitは分散型のバージョン管理システムの1つです。 ファイルのバージョン管理が簡単にできるツールといえます。 また以下のような特徴がGitにはあります。

  • 古いバージョンに簡単に戻せる
  • 新旧のファイルを一元管理できる
  • 編集した履歴を複数人で共有できる
  • 複数人で修正した部分を一つに統合できる

Gitの各用語

リポジトリ(Repository)

リポジトリとは、ファイルやディレクトリを入れて保存しておく貯蔵庫のことです。 Gitにおけるリポジトリは以下の2種類に分かれています。

  • リモートリポジトリ(共有リポジトリ) ・・・ 特定のサーバー上に設置して複数人で共有するためのリポジトリ
  • ローカルリポジトリ(個人リポジトリ) ・・・ ユーザーごとに配置される手元のマシンで編集できるリポジトリ

2種類のリポジトリに分けることで、普段の作業はそれぞれのユーザーが手元のローカルリポジトリで行い、作業内容を共有するときにリモートリポジトリで公開するという使い方になります。 リモートリポジトリを介して他のユーザーの作業内容を把握することも可能です。

コミット(Commit)

コミットは、ファイルやディレクトリの編集作業をローカルリポジトリに記録するために必要な操作のこと。 コミットを実行するとファイルを編集した日時を記録したファイルが生成されます。 コミットを実行するごとにファイルが生成され、時系列順にならんで格納されるので、ファイルを編集した履歴やその内容を確認することができるわけです。

プッシュ(Push)

プッシュとは、ローカルリポジトリにあるファイルをリモートリポジトリに送信して保存する機能です。 共有リポジトリへの反映が行われるため、アップロードともいえるでしょう。 クローンと異なるのはローカルリポジトリとの差分のみをダウンロードして更新する点です

プル(Pull)

プルとは、共有されているリモートリポジトリに保存されているファイルの内、ローカルリポジトリ(あなたのローカル環境)に無いファイルや他のユーザーが更新したファイルのみをダウンロードする機能です。 ようするにリモートリポジトリの内容を同期させるとも言えます。

クローン(Clone)

クローンとは、ダウンロードに近いものものです。 複数人で共有しているファイル(リモートリポジトリ)をまるごと自分のローカル環境(ローカルリポジトリ)に保存する機能です。 まったく新規で開発の共有を始める場合に最初に行う作業といえます。

ブランチ(Branch)

ブランチとは、ファイルの編集履歴を分岐させて記録していく機能のことです。 WEBサービスやソフトウェアの開発において、バグの修正や、機能の追加などのファイル編集作業は複数のユーザーが同時に行うことも少なくありません。 並行して同時に行われる作業を正確に管理するためにGitにはブランチという機能が用意されています。これがGitのバージョン管理を効率的にし、間違いを減らすためにもっとも活かされている機能ともいえます。

例としてマスターブランチであるメインのブランチと、そこから分岐してバグの修正や、機能の追加を行っているブランチを記すと以下のようになります

マージ(Merge)

複数のブランチを一つにまとめて、完成形に近づけることをマージと呼びます。 ブランチの図で言うとバグの修正や、機能の追加を行ったブランチがマスターブランチに統合されている部分のことです。

フェッチ(Fetch)

リモートリポジトリからファイルの最新情報を取得してくる操作のことです。共有されているファイル(リモートリポジトリ)の更新を確認したり、複数人の作業の擦り合わせのために使う機能といえます。 プルと異なる点はローカルのファイルを更新することはないことです。 複数人で同じファイルを編集しているときでもお互い干渉しないようにするための機能と言えます。

Gitでの開発フロー

Git管理はは基本的に下記のような構造になっています。

Gitを用いたPush(リモートリポジトリへの反映)方法

共有リポジトリへ編集した内容を反映する方法です。以下のようなステップで行います。

  1. 内容を変更したり新規作成したりしたファイルをローカルリポジトリにCommitする
  2. リモートリポジトリにローカルリポジトリへPushする

Gitを用いたPull(リモートリポジトリからの反映)方法

共有リポジトリの内容を個人リポジトリに反映する方法です。以下のようなステップで行います。

  1. リモートリポジトリから情報をPullする
  2. あとはGitを用いたPush(リモートリポジトリへの反映)方法

GitHubとは

Gitの仕組みと連携して、他のユーザーとやりとりしやすくしているホスティングサービスである。 またGitHubには以下のような特徴があります。

  • Pull Requestによるコラボレーション機能
  • 他チームのGitHubの開発に参加・確認機能
  • 非公開リポジトリは有料・公開リポジトリは無料

GitとGitHubの準備

準備

GitとGitHubを用いるにはGitのインストールGitHubのアカウント作成を行ってください。 詳しい作成方法は各自検索し行ってください。

Gitの初期設定

windowsの方はGit Bashを立ち上げ、MacOSの方はターミナルを開いてください。 Git BashまたはターミナルへのGitHubのアカウントの登録は以下のコマンドで行います。

git config --global user.name GitHub登録ユーザ名
git config --global user.email Github登録メールアドレス

GitHub登録ユーザ名とGithub登録メールアドレスは各自用意したものを代入してください。 またGitBashやターミナルへGitHubへのユーザ情報を登録できたかどうかの確認は以下のコマンドで行います。

git config --list

Gitで用いる頻出コマンド

Gitをターミナルでコマンドを入力して操作する場合以下のようなコマンドを使用します。

cdコマンド

ディレクトリを移動します。

cd ディレクトリ名

lsコマンド

ディレクトリの内容を表示します。 ls -a コマンドで、隠しファイルを含めたディレクトリ全内容を表示します。

ls
ls -a

mkdirコマンド

ディレクトリを新規作成します。

mkdir ディレクトリ名
mkdir [オプション] ディレクトリ名

rmコマンド

ファイルを削除します。

rm [オプション] ファイル1 ファイル2 ....

cpコマンド

ファイルをコピーします。

cp ファイル名1 ファイル名2

ファイル名1をファイル名2にコピーする。

mvコマンド

ファイルの移動とファイル名の変更を行います。

mv ファイル1 ディレクトリA

「ファイル1」が「ディレクトリA」に移動します。

GitとGitHubの使用

新規プロジェクトの作成

0.プロジェクトにしたいフォルダへの移動

cdコマンドを用いてプロジェクトにしたいフォルダに移動します。 フォルダの中身はlsコマンドで確認します。また-aオプションで隠しファイルも確認可能です。

cd ディレクトリ名

1.ローカルリポジトリの作成

リポジトリの新規作成は以下コマンドで行います。 これを行うことでローカルリポジトリが作成できます。 .gitファイルが作成されます。

git init

基本的なワークフロー

1.ファイルの変更をステージングエリアへ追加する

ステージングエリアへの追加は以下のコマンドで行います。

git add ファイル名
git add .

2.ローカルリポジトリにコミットする

git commit

このコマンドを開くとVimエディタが開きます。

  1. 半角英数字に切り替える
  2. 「iキー」を押す
  3. コミットメッセージの入力
  4. 「escキー」を押す
  5. 「:wq」を入力しエンターを押す
  6. Vimエディタを閉じる

または

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

上記の方法を使うとvim editorは起動せず、コマンドラインのみでコミットメッセージを設定しコミットできます。

3.リモートリポジトリにプッシュする

GitHubにリポジトリを用意する。 以下コマンドを実行する。

git romote add origin "GitHubURL"

以下コマンドを実行する。

git push -u origin master

リポジトリの状態の確認

以下のコマンドでリポジトリの状態が確認できます。

git status

コミットの変更履歴の確認

以下のコマンドでコミットできたか確認できます。

git log

以下のようなオプション指定もあります

#一行での表示
git log --oneline
#ファイル差分の表示
git log -p ファイル名
# 表示数の制限表示
git log -n 数字

またjで最新のコミットログを、kで以前のコミットログを確認可能です。 qを押すと終了します。

ファイルの削除のステージングエリアへ追加

ファイルを削除した後に行います。 git addの代わりに以下のコマンドを実行します。

git rm ファイル名

ファイルの変更差分の確認

# ステージとの差分
git diff
# ステージとローカルリポジトリとの差分
git diff HEAD

リモートリポジトリへの登録

git remote add origin "GitHubリポジトリURL"

originはエリアスなためデフォルト名として用いれます。

リモートリポジトリへの送信

git push origin master

originという名前でmaster(マスターブランチ)に登録することを示す。

git push エリアス名 ブランチ名

.gitignore

このファイルでgitで管理したくないファイルを指定可能です。 例えば以下のようなものです。

  • 自動生成されるファイル
  • パスワード・IDなどが記載されるファイル
#拡張子ファイルを無視
.拡張子
#指定したファイルの除外
ファイル名
#ディレクトリ以下で除外(特定ファイルの無視)
フォルダ名/

誤ってアップロードした場合

git rmコマンドでGitから削除する。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment