Git、GitHubを活用する場合の一通りの方法を残しておきたいと思います。
Gitのダウンロード、インストール方法からはじまって、ファイルの編集作業を実施し、git add、git commitなどを通して編集したファイルのGitへのコミットを行い、その後、GitHubのインストールしてからgit push、マージを通してGitHubのmasterへの反映まで実施、再度編集用にクローンするところまでの一連の流れ一式となります。
単独作業想定により、レビューは除外しています。
目次
- 1.ダウンロード
- 2.インストール
- 3.付属ツールGit Bashと起動方法
- 4.Git Bashのホームディレクトリ変更方法
- 5.ユーザー名とメールアドレスの設定
- 6.gitの初期化、git initについて
- 7.git addとステージングエリア(インデックス)への登録について
- 8.git commitとローカルリポジトリへの登録
- 9.GitHubのアカウント作成方法
- 10.公開鍵の設定方法
- 11.「git push」について、リモートリポジトリにプッシュする方法
- 12.プルリクエストとマージを実行する方法
- 13.リモートリポジトリをクローンする方法
まずは、Gitのダウンロードとインストールからです。
1.ダウンロード
まずはじめにGitのサイト(https://git-scm.com/)を開きます。
その中の「Downloads」ボタンをクリックします。
表示されたDownloads画面の中で「Windows」をクリックします。
次に、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」以下にありますので必要に応じてそちらを選択してください。
クリックするとダウンロードがはじまります。
終了したら以下のようにダウンロードファイルがフォルダ内にダウンロードされていると思います。
2.インストール
以下のようにダウンロードしたファイルをダブルクリックします。
変更を許可するかどうかの確認画面が表示された時は「はい」をクリックします。
2-1.初回インストール
その後、以下のようなインストール用の初期画面が表示された時は「Next」をクリックします。
次に、インストール先確認画面が表示されたら「Next」をクリックします。
一度過去に実施していたような場合などすでにフォルダが存在する場合は以下のような確認画面が表示される場合がありますが、同じ場所へのインストールで問題なければ「はい」をクリックします。
初回インストールでは関係ありません。
インストール項目確認画面が表示されたら「Next」をクリックします。
スタートメニューフォルダ名確認画面が表示されたら「Next」をクリックします。
利用するエディタの確認画面が表示されたら「Next」をクリックします。
リポジトリ作成時のブランチ名確認画面が表示されたら「Next」をクリックします。
コマンド実行ツール確認画面が表示されたら「Next」をクリックします。
OpenSSH選択画面が表示されたら「Next」をクリックします。
HTTPS接続設定確認画面が表示されたら「Next」をクリックします。
改行コード設定確認画面が表示されたら「Next」をクリックします。
Git Bashのエミュレータ確認画面が表示されたら「Next」をクリックします。
git pullコマンドの挙動確認画面が表示されたら「Next」をクリックします。
認証情報ヘルパー確認画面が表示されたら「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」が起動する。
Windows11の場合もほぼ同様ですが、
1.画面下部のWindowsの「スタートメニュー」をクリックする。
2.「すべてのアプリ」をクリックする。
3.「Git」フォルダをクリックする。
4.「Git Bash」をクリックする。
5.「Git Bash」が起動する。
となります。
4.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」ということで、
コミットするものはなにもない、ワークツリーはクリーンだと表示されています。
最後に、これまでのワーキングツリー、ステージングエリア、ローカルリポジトリの間の流れを概略記載すると以下のようになります。
9.GitHubのアカウント作成方法
Gitで作成、コミットなどしたものを皆で共有してバージョン管理を行うためにはGitHubを使用します。
GitHubを活用するためにはまずはじめにアカウントの作成が必要になります。
ここでは、アカウントの作成方法を具体的な画面を表示しながら説明します。
9.1.GitHubのURLへのアクセスとサインアップ
はじめに以下URLにアクセスします。
すると、以下のような画面が表示されます。
右上のサインアップをクリックします。
すると、以下のようなユーザーアカウント登録画面が表示されます。
9.2.ユーザーアカウント登録画面への入力
ここでは、「ユーザー名」、「メールアドレス」、「パスワード」を入力します。
入力が完了したら、一番下の「アカウントを作成する」をクリックします。
すると、入力した「メールアドレス」に「パスコード」が送られてきます。
9.3.パスコードの入力
送られてきた「パスコード」を「パスコード入力画面」に入力します。
「パスコード入力画面」でパスコードを入力して画面展開すると、続いて、順に質問画面が表示されます。
9.4.各種質問画面への入力
はじめに、チームメンバーの数や学生か先生かなどを選択します。
使用するのに興味がある機能、ツール類を選択します。
有料か無料かのプランの選択になります。
あとで変更はできますので無料でよければ「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にログインして初期画面を開きます。
以下のように画面右上のアイコンから設定画面(Settings)を選択して開きます。
設定画面にて、左側メニューの「SSH and GPS Keys」をクリックします。
画面右側の「New SSH Key」をクリックします。
以下の画面で、「Title」にタイトルを入力し、「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」タブを選択します。
12.2.新規プルリクエスト用画面展開とブランチの選択
展開した画面で、以下のように「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の初期画面の左側に並んでいるリポジトリの中から該当するリポジトリをクリックします。
13.2.リポジトリのURLのコピー
リポジトリ選択後の画面にて「Code」をクリックします。
その中の「SSH」のタブを選択し四角2つのコピーマークをクリックしてURLをコピーします。
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】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】コミット履歴の確認とコミットを元に戻す方法 - Django Girls and Boys 備忘録