Rainbow Planet (GT×IT×SP×SA)

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

01_IT技術 (Technology)

GitHubのリポジトリとは?リポジトリを作って作業を反映させる方法(git init/git add/git commit/git remote add/git push)

投稿日:

(0)目次&概説

(1) リポジトリ作成及び資産登録の方法
 (1-1) リモートリポジトリ作成
 (1-2) ローカルリポジトリの作成
  (1-2-1) リモートリポジトリ
  (1-2-2) masterブランチ
 (1-3) インデックスの作成
 (1-4) 変更内容をコミット
  (1-4-1) エラー発生時の対処
 (1-5) リモートリポジトリの登録
  (1-5-1) もし間違えて登録してしまった場合
 (1-6) リモートリポジトリへの変更反映

(1) リポジトリ作成及び資産登録の方法

GitHubでリポジトリを作成する際の概念図を下記に示します。おおまかな流れとしては下記の通りとなります。

①「ローカルリポジトリ」を作成し、「ワーキングツリー」にて作業を行う。
②作業が一区切りしたら、「インデックス」を追加してコミットの準備を行う。
③「コミット」したい作業が出揃ったら、コミットをしてローカルリポジトリに作業を反映させる

④「リモートリポジトリ」を登録し、リモートリポジトリにも作業内容を反映させる

(図003)

実際に複数人で共同開発をする場合は、「リモートリポジトリ」の資源をマスターとして皆で共有していく事になります。

(図004)

目次にもどる

(1-1) リモートリポジトリ作成

①GitHubにログイン(https://github.com/login)したら、左ペインの「New」ボタンを押下してリポジトリを作成する
(図001)

②「Create a new repository」の画面にて任意の「Repository name」を入力して「Create Repository」を押下します。

目次にもどる

(1-2) ローカルリポジトリの作成

(1-2-1) リモートリポジトリ

自身が作業するためのローカルリポジトリを作成します。
(図010)

作成は次のコマンドで行います。

git init

 

このコマンドを実行すると、カレントディレクトリをGitリポジトリに変換します。具体的に現在のディレクトリに「.git」というローカルリポジトリ用のGit管理ディレクトリが作成されます。

(図011)

このディレクトリは「作業ツリー」と呼ばれ、ローカル作業を行う場所として使います。

(1-2-2) masterブランチ

更に「git init」を行うとデフォルトで「master」ブランチが作成されます。

(図033)

目次にもどる

(1-3) インデックスの作成

インデックスとはリポジトリにコミットするための変更内容を一時的に記録するためのものです。ワーキングツリーの中からファイルを見つけて、インデックスに追加しています(Gitの管理対象に含める)。

(図020)

インデックスの追加は次のコマンドで追加をします。

git add Deeplearn_Java_ANDgate.java

 

(図021)

インデックスに追加されていないと、コミットの対象となりません。addをする事でファイルは「staged」という状態になります。次の「コミット」では、この「staged」状態のものを纏めてコミットします。

目次にもどる

(1-4) 変更内容をコミット

コミットとはファイルやディレクトリの追加や変更をリポジトリに記録することです。具体的には、インデックス領域に記録された変更内容をまとめたコミットを行います。

(図030)

コミットは下記のコマンドで行います。

git commit -m "Your Comment"

 

(図031)

「-m」オプションでコミット時のメッセージを添える事ができます。上記の例の「”Your Comment”」の箇所をご自身の入力したい任意のメッセージにします。またコミットの完了後に下記のコマンドでステータスをチェックします。

git status

(図033)

(1-4-1) エラー発生時の対処

もしも「git commit」にて下記のエラーが出たら、Gitの認証情報が必要となりますので「■対処コマンド」に書かれているコマンドを実行してみて下さい。

■エラーメッセージ

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got '○@○Air2.(none)')

 

■対処コマンド

git config --global user.email "[Your e-mail]"
git config --global user.name "[Your ID]"

 

[Your e-mail] GitHubに登録しているメールアドレス
[Your ID] GitHubに登録しているユーザーID

実際の実行例を下記に示します。

(図032)

目次にもどる

(1-5) リモートリポジトリの登録

「リモートリポジトリ」を登録するためのコマンドです。
 
(図040)

このコマンドにより指定した略称で[URL]に指定したリモートリポジトリが登録されます(デフォルトの略称は「origin」)。

git remote add [略称] [URL] 

 

[URL] https://github.com/your-account/repository-name.git
[略称] リモートリポジトリの略称(修飾子)。デフォルトはorigin

ちなみに、リモートリポジトリとはオンライン上にあるリポジトリで、複数名で共同開発をする際などに利用します(手順(1-1)で作成済み)。

実際の実行例を以下に示します。

git remote add origin https://github.com/[Your ID]/Java_Deeplearn_AndGate.git

(図041)

(1-5-1) もし間違えて登録してしまった場合

もし間違えて作成してしまった場合等で「fatal: remote XXXX already exists.」が出る場合は「git remote rm XXXX」で一度削除してから再度追加します。
 >目次にもどる

(1-6) リモートリポジトリへの変更反映

ローカルリポジトリをプッシュしてリモートリポジトリへ反映させます。

反映は次のコマンドを用いて行います。

git push [Remote Repository略称] [ブランチ名]

[Remote Repository略称] 「git remote add」で指定したリモートリポジトリの略称
[ブランチ名] 今回はデフォルトから変更していないので「master」を指定します。

今回の例では下記のコマンドを実行しました。

git push origin master

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-01_IT技術 (Technology)

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Linux(CentOS7)にTomcatをインストールする手順について

(0)目次&概説 (1) 記事の目的/前提 (2) 実施手順  (2-1) Tomcat用ユーザ/グループ作成  (2-2) 資源のダウンロード  (2-3) 資源の解凍  (2-4) 資源に必要権限 …

Linuxのテキスト入力で日本語が文字化けした時の対処法と解説

Linuxのテキスト入力等で日本語が文字化けした時の対処方法を紹介します。 (0)目次&概説 (1) 障害・不具合の概要 (2) 文字化けの対処法 (3) 解説(文字コードについて) (1) 障害・不 …

OracleDB11gのキャラクタセットを変更する手順について(手順編)

(0)目次&概説 (1) 記事の目的 (2) キャラクタセット変更手順  (2-1) CSSCAN実行の準備   (2-1-1) csminst.sqlファイルの確認   (2-1-2) SQL*Pl …

OracleDB11gのキャラクタセットを変更時に遭遇したエラーの対処方法

(0)目次&概説 (1) 記事の目的 (2) キャラクタセット変更手順 (3) 失敗した場合のリカバリ手順 (4) 用語説明 (5) エラー対応  (5-1) エラー:error while load …

OracleDB11gのキャラクタセットを変更する手順について(概要編)

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件   (1-2-1) 「props$」更新はNG   (1-2-2) 10g以降は”ALTER DATABA …

  • English (United States)
  • 日本語
Top