Git、GitHub を活用する場合の一通りの方法をここに説明として残しておきたいと思います。
Gitのダウンロード、インストール方法からはじまって、ファイルの編集作業を実施し、git add、git commitなどを通して編集したファイルのGitへのコミットを行い、その後、GitHub のインストールしてからgit push、マージを通してGitHub のmasterへの反映まで実施、再度編集用にクローンするところまでの一連の流れ一式となります。
単独作業想定により、レビューは除外しています。
目次
まずは、Gitのダウンロードとインストールからです。
1.ダウンロード
まずはじめにGitのサイト(https://git-scm.com/ )を開きます。
その中の「Downloads」ボタンをクリックします。
Gitのサイト
表示されたDownloads画面の中で「Windows 」をクリックします。
Downloads画面
次に、Downloadするファイルの種類選択となりますが、通常64bit版のOSであれば、「Click here to download the latest 64-bit version of Git for Windows 」とある中の「Click here to download 」をクリックすればいいと思います。
32bit版などその他の種類のものは、「Other Git for Windows downloads」以下にありますので必要に応じてそちらを選択してください。
Downloadの種類選択画面
クリックするとダウンロードがはじまります。
終了したら以下のようにダウンロードファイルがフォルダ内にダウンロードされていると思います。
フォルダ内のダウンロードファイル
2.インストール
以下のようにダウンロードしたファイルをダブルクリックします。
Dowmloadしたファイルをダブルクリック
変更を許可するかどうかの確認画面が表示された時は「はい」をクリックします。
2-1.初回インストール
その後、以下のようなインストール用の初期画面が表示された時は「Next」をクリックします。
インストール初期画面
次に、インストール先確認画面が表示されたら「Next」をクリックします。
インストール先確認
一度過去に実施していたような場合などすでにフォルダが存在する場合は以下のような確認画面が表示される場合がありますが、同じ場所へのインストールで問題なければ「はい」をクリックします。
初回インストールでは関係ありません。
すでにフォルダが存在する場合の確認
インストール項目確認画面が表示されたら「Next」をクリックします。
インストール項目確認
スタートメニューフォルダ名確認画面が表示されたら「Next」をクリックします。
スタートメニューフォルダ名確認
利用するエディタの確認画面が表示されたら「Next」をクリックします。
利用するエディタ確認
リポジトリ 作成時のブランチ名確認画面が表示されたら「Next」をクリックします。
リポジトリ 作成時のブランチ名確認
コマンド実行ツール確認画面が表示されたら「Next」をクリックします。
コマンド実行ツール確認
OpenSSH選択画面が表示されたら「Next」をクリックします。
OpenSSH選択
HTTPS 接続設定確認画面が表示されたら「Next」をクリックします。
HTTPS 接続設定確認
改行コード設定確認画面が表示されたら「Next」をクリックします。
改行コード設定確認
Git Bash のエミュレータ 確認画面が表示されたら「Next」をクリックします。
Git Bash のエミュレータ 確認
git pullコマンドの挙動確認画面が表示されたら「Next」をクリックします。
git pullコマンド挙動確認
認証情報ヘルパー確認画面が表示されたら「Next」をクリックします。
認証情報ヘルパー確認
拡張オプション確認画面が表示されたら「Next」をクリックします。
拡張オプション確認
実権的なオプション確認画面が表示され、インストールボタンが表示されたら「Install」をクリックします。
実権的なオプション確認
インストールが開始します。
終了したら以下のような画面が表示されますので「Finish」をクリックします。
インストール終了
これでインストールは完了です。
2-2.2回目以降のインストール
一度インストールしているような場合は、以下のようなインストール用の初期画面が表示された時に「Only New Options」にチェックが入っている状態で「Next」をクリックします。
インストール確認
すると、「OpenSSH」の選択画面が表示され、インストールボタンが表示されたら「Install」をクリックします。
インストール開始
インストールが開始します。
終了したら以下のような画面が表示されますので「Finish」をクリックします。
インストール終了
これでインストールは完了です。
3.付属ツールGit Bash と起動方法
コマンド実行のためのツールとしては、Windows では「コマンドプロンプト 」、Mac では「ターミナル」があります。
ここでですが、GitのWindows 版には、「Git Bash 」というツールがついています。
これは、Windows でもMac のターミナルとほぼ同じコマンドが実行できるもので、これを使用することでサーバーなどに使われるLinux と共通するコマンドが実行できることになります。
汎用性が高いです。
その「Git Bash 」の起動方法は以下となります。
Windows10の場合は、
1.画面左下のWindows の「スタートメニュー」をクリックする。
2.「すべてのアプリ」に表示されている「Git」フォルダをクリックする。
3.「Git Bash 」をクリックする。
4.「Git Bash 」が起動する。
Git Bash 起動方法
Windows11の場合もほぼ同様ですが、
1.画面下部のWindows の「スタートメニュー」をクリックする。
2.「すべてのアプリ」をクリックする。
3.「Git」フォルダをクリックする。
4.「Git Bash 」をクリックする。
5.「Git Bash 」が起動する。
となります。
Git Bash にてホームディレクト リを変更する方法 です。
Windows マーク横の検索エリアに「環境変数 」と入力します。
そうすると、以下のように「システム環境変数 の編集」が表示されますので選択します。
システム環境変数 の編集表示、選択
「システムのプロパティ」が表示されますので、「詳細設定」タブの「環境変数 」をクリックします。
システムのプロパティ
「環境変数 」設定ウインドウが表示されます。
「ユーザー環境変数 」と「システム環境変数 」の2つがありますが、全ユーザー共通で変更する場合は、「システム環境変数 」、現在のユーザーのみ変更したい場合は「ユーザー環境変数 」側を変更します。
今回は、現在のユーザーのみ変更することとして、「ユーザー環境変数 」側の「新規」をクリックします。
そうすると、以下のように「ユーザー環境変数 」用の新規ユーザー変数登録ウインドウが表示されますので、
「変数名」に「HOME」、「変数値」に新しくホームディレクト リにしたいディレクト リを入力します。
以下の例では、「C:¥」と入力しています。
環境変数 設定
最後に、順に「OK」をクリックしていき設定完了します。
5.ユーザー名とメールアドレスの設定
Gitのダウンロード、インストールやWindows の場合にMac のターミナルの代わりになるGit Bash の設定方法などが終了したら、Gitの設定をします。
Gitの設定を行う場合には、「git config」というコマンドを使用します。
「git config」を使用して、ユーザー名やメールアドレスを設定しておきます。
まずはじめに、ユーザー名を設定します。
以下では、ユーザー名に相当する「user.name」に「testname」という名前を設定しています。
git config --global user.name testname
設定後、「git config」に「--list」を追加した以下のようなコマンドにて設定内容を確認することができます。
git config --list
これにて、設定内容一覧が表示されます。
続いて、メールアドレスを設定します。
以下の例では、メールアドレスに相当する「user.email」に「testaddress@example.com 」というアドレスを設定しています。
git config --global user.email testaddress@example.com
再度、設定内容を確認します。
git config --list
以上が、「git config」というコマンドを使用したユーザー名とメールアドレスの設定と設定内容の確認になります。
ここまで終了したら、gitの初期化に移ります。
6.gitの初期化、git initについて
Gitでバージョン管理を行いたい場合には、gitをインストールした後に、リポジトリ の初期化を行います。
リポジトリ とは、「ファイルやディレクト リの状態、変更履歴などを記録しておく場所」です。 英語では、「貯蔵庫」、「収納庫」というような意味です。
gitで管理したいディレクト リを決定するか新たに作成し、「git init」で初期化を行います。
新たにディレクト リを作成し、gitで管理する場合には、
たとえば、コンソールまたはGit Bash で(Mac ではターミナルで)、
$ mkdir abc
にて仮に「abc」というディレクト リを作成し、
$ cd abc
にて、「abc」ディレクト リに移動し、以下のように、「git init」を実行します。
これによりリポジトリ の初期化が行われ、「git init」を実行したディレクト リ内に「.git」というディレクト リが作成されます。
$ git init
Initialized empty Git repository in C:/Users/{ユーザー名}/abc/.git/
この「.git」というディレクト リ内には、「git init」を実行したディレクト リ以下を管理するリポジトリ データが格納されます。
この「git init」を実行したディレクト リ以下のことを「ワークツリー」と呼び 、ここでファイルの編集などを行います。
ここで、リポジトリ の状態を確認するために、「git status」コマンドを実行してみます。
「git status」コマンドはリポジトリ の状態を確認するためのコマンド です。
$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
この表示には、現在、「master」という名のブランチにおり、コミットがないということが書かれています。
コミットとは、「ファイルやディレクト リの追加、変更をリポジトリ に記録する」こと です。
7.git addとステージングエリア(インデックス)への登録について
この初期化したリポジトリ でファイルのバージョン管理を行う場合には、バージョン管理を行いたいファイルの作成、編集作業は、 「git init」を実行した作業用ディレクト リ内で行います。
たとえば、VisualStudioCodeなどのエディターを使用して「git init」を実行した作業用ディレクト リ内で「Test.txt」を作成します。
gitの状態を確認するコマンド「git status」を実行してみると、
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
Test.txt
nothing added to commit but untracked files present (use "git add" to track)
のように、「Test.txt」が作成されていることがわかります。
この例は「git init」を実行した直後なので、「No commits yet」で、まだコミットされたファイルはないと表示されています。
「untracked files」は追跡されていないファイルということで、作成直後のファイル「Test.txt」は、まだGitの管理下に登録されていないためこのような表示になります。
「ワーキングツリー」でファイルを作成しただけでは、Gitのバージョン管理の対象にはならないため、管理下に登録するためには、「git add」コマンドを実行することになります。
今回の場合はたとえば以下のように実行します。
$ git add Test.txt
これにより、ファイル「Test.txt」が「ステージングエリア」に登録されます。
再度、「git status」コマンドを実行してみると、
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: Test.txt
ファイル「Test.txt」が「ステージングエリア」に登録されたため、表示も「Changed to be commited」に変わりました。
「ステージングエリア」とは、「インデックス」とも呼ばれ、「ローカルリポジトリ にコミットするファイルを置いておくエリア」です。
また、
$ git add .
とすると、カレントディレクト リ配下のすべてのファイルが「ステージングエリア」に登録されます。
配下にサブディレクト リ「dir1」があった時に、
$ git add dir1
とすると、サブディレクト リ「dir1」配下のすべてのファイルが「ステージングエリア」に登録されます。
サブディレクト リ「dir1」の配下に「file1」があった時には、
$ git add dir1/file1
とすると、サブディレクト リ「dir1」配下の「file1」が「ステージングエリア」に登録されます。
同様に、
$ git add -A
または、
$ git add --all
とした場合には、カレントディレクト リだけでなく「ワーキングツリ―」配下のすべてのフォルダ内のファイルが「ステージングエリア」に登録されます。
このように「ステージングエリア」があることで、カレントディレクト リ配下のファイルの中でコミットしたくないファイルを除いてコミットしたいファイルだけをコミットすることができるようになります。
8.git commitとローカルリポジトリ への登録
「git init」で初期化し、ファイル作成、編集後、「git add」でステージングエリアへの登録が終了した場合には、そのファイルをコミットします。
はじめに、現在の状態を確認しておきます。
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: Test.txt
「Test.txt」がまだコミットされていない状態で「ステージングエリア」に登録されています。
続いて、以下のように「git commit」で「ステージングエリア」にあるファイル群をコミットします。
$ git commit -m "First commit"
これにより、「ステージングエリア」にあるすべてのファイルがコミットされます。
""の中には、今回のコミットする内容などをコメントとして記載します。
「-m」 をつけると、その後に1行分のコメントをつけることができます。
ちなみに、単に、
$ git commit
とだけ打った場合には、VisualStudioCodeなど設定されているエディターが立ち上がり、その中でコメント記述することになります。この場合は複数行のコメントを書くことが出来、エディターを閉じるとコミットが完了し、結果がコマンドライン に表示されます。
ただし、エディターが正しく設定されていないような場合には何も立ち上がらないかもしれないので、そのような場合は、「-m」つきの1行コメントを使うか設定を見直すことになります。
ここで、再度状態を確認するため「git status」で確認します。
$ git status
On branch master
nothing to commit, working tree clean
「nothing to commit, working tree clean」 ということで、
コミットするものはなにもない、ワークツリーはクリーンだ と表示されています。
最後に、これまでのワーキングツリー、ステージングエリア、ローカルリポジトリ の間の流れ を概略記載すると以下のようになります。
gitの流れ(ワーキングツリー、ステージングエリア、ローカルリポジトリ )
Gitで作成、コミットなどしたものを皆で共有してバージョン管理を行うためにはGitHub を使用します。
GitHub を活用するためにはまずはじめにアカウントの作成が必要になります。
ここでは、アカウントの作成方法を具体的な画面を表示しながら説明します。
9.1.GitHub のURLへのアクセスとサインアップ
はじめに以下URLにアクセスします。
https://github.co.jp/
すると、以下のような画面が表示されます。
「GitHub 」トップ画面
右上のサインアップをクリックします。
すると、以下のようなユーザーアカウント登録画面が表示されます。
9.2.ユーザーアカウント登録画面への入力
「ユーザーアカウント登録画面」
ここでは、「ユーザー名」、「メールアドレス」、「パスワード」を入力します。
入力が完了したら、一番下の「アカウントを作成する」をクリックします。
すると、入力した「メールアドレス」に「パスコード」が送られてきます。
9.3.パスコードの入力
送られてきた「パスコード」を「パスコード入力画面」に入力します。
「パスコード入力画面」
「パスコード入力後の画面」
「パスコード入力画面」でパスコードを入力して画面展開すると、続いて、順に質問画面が表示されます。
9.4.各種質問画面への入力
はじめに、チームメンバーの数や学生か先生かなどを選択します。
「GitHub 質問画面1」
使用するのに興味がある機能、ツール類を選択します。
「GitHub 質問画面2」
有料か無料かのプランの選択になります。
あとで変更はできますので無料でよければ「Continue for free」を選択します。
「無料、有料プランの選択」
以上でアカウント作成は完了となります。
10.公開鍵の設定方法
GitHub に対して操作を行う時には認証が必要になります。
ここでは、認証用の設定としてSSH の登録を説明します。
10.1.鍵の生成(公開鍵、秘密鍵 )
まずはじめに、
$cd ~/.ssh
にて鍵を入れるフォルダに移動します。
続いて次のコマンドで鍵を生成します。
オプションをつける場合もありますが、なしの場合は、「id_rsa 」と「id_rsa .pub」の2つの鍵が生成されます(id_rsa :秘密鍵 、id_rsa .pub:公開鍵 )。
$ssh-keygen -t rsa
以下のように表示されたら、「Enter」をクリックします。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
次に、以下のように「Enter passphrase (empty for no passphrase)」ということで、パスフレーズ を入力してくださいと表示されるのでパスフレーズ を入力します。
特になしでいい場合には、何も入力せず「Enter」をクリックします。
Enter passphrase (empty for no passphrase):
続いて、「Enter same passphrase again」のように、再入力してくださいと表示されるのでもう一度同じものを入力します。
Enter same passphrase again:
10.2.公開鍵の設定
ここまで終了したら、公開鍵をGitHub の設定画面に登録するために以下のコマンドでクリップボード にコピーしておきます。
(Windows )
clip < ~/.ssh/id_rsa.pub
(Mac )
pbcopy < ~/.ssh/id_rsa.pub
GitHub にログインして初期画面を開きます。
「GitHub 初期画面」
以下のように画面右上のアイコンから設定画面(Settings)を選択して開きます。
「GitHub 初期画面にてSettings選択」
設定画面にて、左側メニューの「SSH and GPS Keys」をクリックします。
「設定画面で「SSH and GPG Keys」選択」
画面右側の「New SSH Key」をクリックします。
「設定画面で「New SSH Key」選択」
以下の画面で、「Title」にタイトルを入力し、「Key」には先程コピーしておいた公開鍵情報をペーストします。
「key情報入力画面」
すべて入力が完了したら、「Add SSH Key」をクリックします。
これで設定は完了です。
10.3.設定の確認
正しく設定できたことを確認するために以下のコマンドを入力します。
ssh -T git@github.com
ここで、
Are you sure you want to continue connecting (yes/no)?
と聞かれたら、「yes」を入力します。
続いて、
Enter passphrase for key '・・・・・':
と聞かれたら、パスフレーズ を入力します。
最終的に、
Hi (account名)! You've successfully authenticated, but GitHub does not provide shell access.
と返ってきたら設定は成功しています。
11.「git push」について、リモートリポジ トリにプッシュする方法
「git commit」まで終了し、GitHub のアカウント作成などGitHub 使用の設定が終了していれば、次に コミットした結果をリモートリポジ トリにプッシュします。
これには、「git push」を使用します。
ここでは、自分のローカル側に、編集、「git add」、「git commit」まで行ったブランチちとして、「update_branch」があるものとします。
それに対して、以下のように実行することで、自分のローカル側のブランチである「update_branch」をリモートリポジ トリの同名のブランチにプッシュすることができます。
git push origin update_branch
ちなみに、ブランチ名を省略して、
git push origin
とすると、現在チェックアウトしているブランチがその同名のブランチにプッシュされます。
また、オプションとして、「-f」または、「--force」を追加することで、強制プッシュすることができます。
これは、「git push」やその後のプルリクエス トなどでコンフリクトが発生して、操作ができなくなってしまった場合などで、このブランチをプッシュすることで間違いないような場合にこれを行うことで強制的にプッシュすることができるものです。
以下の場合には、ローカル側の「master」ブランチをリモートリポジ トリ側の同名のブランチに強制プッシュします。
git push -f origin master
12.プルリクエス トとマージを実行する方法
ここでは、「git push」まで終了した後のプルリクエス トとマージの方法について説明します。
個人ベースでの活用を念頭にレビュー、レビュー依頼の部分は省略したシンプルな内容でのやり方になります。
「git push」まで終了したら、次はブラウザでGitHub に入ります。
12.1.リポジトリ 選択、「Pull Requests」タブ選択
ログイン後の初期画面で該当するリポジトリ を選択します。
リポジトリ 選択後の画面で、以下のように「Pull Requests」タブを選択します。
「Pull requests」タブ選択
12.2.新規プルリクエス ト用画面展開とブランチの選択
展開した画面で、以下のように「New pull request」ボタンをクリックします。
「New pull request」ボタン選択
表示された以下のような画面で該当するブランチを選択します。
該当するブランチ選択
12.3.新規プルリクエス トへの必要情報入力と作成
表示された画面で以下のように「タイトル」と「コメント」を入力し「Create pull request」をクリックします。
以下の例では、「タイトル」に”テスト”、「コメント」に”コメント”が入っています。
(ここでレビュアーを指定する場合には、右側の「Reviewers」に選択しますが(以下の例では表示はありません)、ここではレビュアーは指定しない場合でやっていきます。レビュアーを指定する場合には、あらかじめ「Settings」→「Collaborators」での設定が必要になります。)
「タイトル」、「コメント」入力
これにより、作成されたプルリクエス トは「Pull requests」タブを選択すると表示されます。
「プルリクエス ト」の表示
上記は、「Pull requests」タブをクリックした結果で、「テスト」というプルリクエス トが表示されています。
12.4.マージ実行
このプルリクエス トを選択すると、問題なければスクロールした下の方に以下のような表示がされていると思います。
「マージ」実行
これは、このブランチはベースブランチとの間で特にコンフリクトはありませんという内容です。
この状態で、その下に「Merge pull request」ボタンが表示されていることを確認します。
「Merge pull request」の横の「▽」をクリックすると、マージする場合の選択が並んでいると思いますが、通常は「Create a merge commit」を選択でいいと思います。
これはブランチに加えたコミットをすべてベースブランチにマージし、操作履歴もそのまま残るものです。
これらを確認して問題なければ「Merge pull request」をクリックします。
コメント入力画面が表示されますのでコメントを入力し「Confirm merge」をクリックします。
以上が、「git push」後のプルリクエス トとマージについてのシンプルな内容でのやり方になります。
13.リモートリポジ トリをクローンする方法
最後になりますが、再度改造を行う場合にはGitHub 上のリモートリポジ トリに登録されている状態からクローンによって複製をもってくることによって行うことになりますが、そのクローンによって複製を持ってくる方法についての説明になります。
13.1.ログインとリポジトリ 選択
そのため、まずはじめにGitHub 上にログインして入ります。
GitHub の初期画面の左側に並んでいるリポジトリ の中から該当するリポジトリ をクリックします。
「GitHub 初期画面」
13.2.リポジトリ のURLのコピー
リポジトリ 選択後の画面にて「Code」をクリックします。
その中の「SSH 」のタブを選択し四角2つのコピーマークをクリックしてURLをコピーします。
GitHub にてリポジトリ 選択後の画面
13.3.クローン実行
「ターミナル」または「コマンドプロンプト 」または「Git Bash 」にてクローンを実行します。
以下のように、「git clone 」の後にコピーしたURLを貼り付け実行します。
git clone git@github.com:*******/abcdefgh.git
これにより、リモートリポジ トリのコピーがローカルリポジトリ として作成されます。
実行したディレクト リの直下に同名のディレクト リ(上記例では「abcdefgh」)が作成されているはずです。
13.4.実行後の確認
cd abcdefgh
にて該当ディレクト リに移動します。
ここで、以下を実行することでクローンしたリモートリポジ トリが設定されているかどうか確認できます。
git remote -v
以下のように、「origin」の後に先程コピーしたURLが2行分表示されていると思います。
origin git@github.com:********/abcdefgh.git(fetch)
origin git@github.com:********/abcdefgh.git(push)
以上がGitのインストール、初期化、add、commitなどからはじまって、GitHub 側にpush、pullrequest、mergeなどを行って、再度、再改造のためなどにcloneによって複製を持ってくるまでのほぼ一巡についての説明になります。
また、Git、GitHub についてのインストール、設定やいろいろなやり方についてこれまで記載してきた記事を一覧として以下にまとめましたのでよかったらご参照ください。
kuku81kuku81.hatenablog.com
また書籍を通して習得したい場合、初心者の方には以下がおすすめです。
リンク
関連記事:
【Git】Gitのダウンロード、インストール方法 - Django Girls and Boys 備忘録
【Git】付属ツールGit Bashについて、起動方法 - Django Girls and Boys 備忘録
【Git】Git Bashのホームディレクトリ変更方法 - Django Girls and Boys 備忘録
【Git GitHub】初心者、初級者におすすめの入門書 - Django Girls and Boys 備忘録
【Python Django】git init について - Django Girls and Boys 備忘録
【Git】ユーザー名とメールアドレスの設定方法 - Django Girls and Boys 備忘録
【Git】git addとステージングエリア(インデックス)への登録について - Django Girls and Boys 備忘録
【Git】git commitとローカルリポジトリへの登録、gitの概略イメージ - Django Girls and Boys 備忘録
【Git】git diffによる差分確認について - Django Girls and Boys 備忘録
【Git GitHub】GitHubのアカウント作成方法 - Django Girls and Boys 備忘録
【Git GitHub】公開鍵の設定方法 - Django Girls and Boys 備忘録
【Git GitHub】Gitのダウンロード、インストールから「git add」、「git commit」によるGitへの登録までの一通りの方法 - Django Girls and Boys 備忘録
【Git GitHub】「git add」、「git commit」後の「git push」について、リモートリポジトリにプッシュする方法 - Django Girls and Boys 備忘録
【Git GitHub】プルリクエストとマージを実行する方法 - Django Girls and Boys 備忘録
【Git GitHub】リモートリポジトリをクローンする方法 - Django Girls and Boys 備忘録
【Git GitHub】プルリクエスト実施後にThere isn’t anything to compare. master and update_branch are entirely different commit histories.が出た時の対応方法 - Django Girls and Boys 備忘録
【Git GitHub】コミット履歴の確認とコミットを元に戻す方法 - Django Girls and Boys 備忘録
【Git GitHub】Git、GitHubのダウンロード、インストール、「git add」、「git commit」によるGitへの登録と「git push」、マージによるGitHubのmasterへの反映とクローンまでの一通りの方法 - Django Girls and Boys 備忘録