LoginSignup
0
1

一歩目のGitとGitHub設定方法

Posted at

初めてGitを使用する際に、自分なりにメモとして残します。

私が使用しているのはMacですので、Mac用の設定方法についてご説明します。ご了承ください。

まず、前提としてGitとGitHubは異なるものです。

私はこれを理解するのに、時間がかかりました。

簡潔に説明すると、Gitはプロジェクトのコードを記録するためのソフトウェアです。

一方、GitHubは記録したコードを他人と共有したり、自分自身が分かりやすく管理できるようにしたものと認識しています(もし間違っていたら、すみません)。

以下は超基本的な設定手順の順番になります。

①GitとGithubをインストール

GitはMacでは標準でインストールされているため、別途インストーラーを用いた環境構築などの作業は不要です。

インストールされているかどうかは、ターミナル上で以下のように確認できます。

ユーザー名@PC名 ~ % git -v

~ はホームディレクトリの為、そこで実装する方が後々良いです。

-vはgit --versionの略であり、どちらでも同じ挙動が確認出来ます。

実行結果は以下のようになります。

~ % git -v
git version 2.39.2 (Apple Git-143)

このように表示されていれば、Gitは標準で使用出来ます。

GitHubはこちらからサインアップを行って頂くことで、アカウント登録が可能となっています。

②Gitの初期設定

Gitに自身のユーザーを登録します。

登録方法は以下の通りです。

~ % git config --global user.name "hoge"

ダブルクォーテーション内にはGitHubで登録したユーザー名が入ります。

ユーザー名を登録出来たら、次に、メールアドレスを登録します。

~ % git config --global user.email "hoge@gmail.com"

こちらも、GitHubで登録したメールアドレスが入ります。

これで登録完了になります。

登録した内容を確認したい場合は、以下のように実行して下さい。

~ % git config --list

実行して以下のように表示がでたら成功しています。

user.name=hoge
user.email=hoge@gmail.com

③リポジトリの作成

GitHubを開き、Newボタンからリポジトリを作成します。
スクリーンショット 2023-09-28 13.29.51.png
押下すると以下のような画面が表示されます。
各機能について、簡単に説明します。
スクリーンショット 2023-09-28 13.23.01.png

              
リポジトリ作成画面の操作
項目 説明
Owner だれが管理するのか
Repository name どんなタイトルにするのか
Description なんの為のリポジトリなのか
Public 世界中に公開する
Private 自身若しくは、任意で追加したメンバーしか閲覧不可
※Initialize this repository with:以下は特に特殊な開発目的がなければ使用しないと思われます。 設定出来たら、Create repository。 以下のような画面が表示されたら、作成完了。

スクリーンショット 2023-09-28 14.00.27.png

④SSHkeyの生成

SSHに関しては、設定しなくても、設定してもどちらでも良い項目にはなりますが、公開鍵暗号方式という接続方法使用していて、大きなメリットが2つあります。

まず、1つ目のメリットとして、通信が暗号化されるため、セキュリティ上のリスクが低減します。

2つ目のメリットとして、GitからGitHubにコードを保存する際に、ユーザー名とパスワードを毎回入力する手間が省け、開発の効率が向上します。

以下に、設定方法を記述します。

~ % ls -al ~/.ssh

このコマンドで拡張子.sshで終わるファイルがないか確認します。
初めて作成する場合は、なにも表示されず、作成した事がある場合は、以下のように表示されます。

-rw-------   1 ユーザー名  staff  3389  6 22 15:03 id_rsa
-rw-------   1 ユーザー名  staff   747  6 22 15:03 id_rsa.pub

このように表示されていても、作成した記憶がない場合、同じ名前で保存したら、上書きは出来ます。
上書きしたくない場合は、ここに表示されない別の名前で保存するようにしましょう。
実際に以下にSSHkeyを作成していきます。

cd .ssh
.ssh % ssh-keygen -t rsa -b 4096

.sshディレクトリに移動してから実行すると、以下のように保存する名前と場所を聞かれます。
移動はしなくてもいいかもしれないが、ホームディレクトリ上に作成されるのを防ぐ為、移動してからにしている。

Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM):

名前を設定しなければ、id_rsaで設定されます。以前にも同じ名前で作成した事がある場合、以下のように聞かれます。

id_rsa already exists.
Overwrite (y/n)?

上書きする場合はyをせずに、別の名前で保存したい場合は、nを入力します。
yを入力したり、初めてファイルを作成する時は、以下のように、パスワードを入力できます。

Enter passphrase (empty for no passphrase):

ここでは、設定しないという方法もとれますし、設定するという方法もとれます。
自身の開発環境によってどちらにするべきか決めます。
決めてパスワードを入力すると以下のように表示されます。

Enter same passphrase again:

このように表示されると、もう一度同じパスワードを入力し、確定させます。
確定させると、下記のように表示されます。

Your identification has been saved in 作成した秘密鍵
Your public key has been saved in id_test_rsa.pub
The key fingerprint is:
SHA256:oZDcMJvwzAiemfP+qi5DF1v29m3/TVWLCO7XBDNOmMs raku@Rakuto-NOV.local
The key's randomart image is:
+---[RSA 4096]----+
|. . o            |
|..+B B    o      |
| *. X . .+ =    .|
|  o. + .o.= = . o|
|   .= o SE o o ..|
| ..o   o.   o   .|
|. ..  . .... .  .|
|o   .    ..o   ..|
|o+....    . .....|
+----[SHA256]-----+

そうして、先程の.sshの拡張子を確認する以下を実行する。

~ % ls -al ~/.ssh

作成したファイルが作成されていれば成功となる。

⑤生成したSSHキーをSSHエージェントに登録する

SSHエージェントに関しても、設定しなくても、設定してもどちらでも良い項目にはなりますが、公開鍵認証の代行することができ、大きなメリットが2つあります。

まず、1つ目のメリットとして、鍵を隠しファイルなどに保存しておく必要が無く、通信を行いたい時だけ、鍵が渡される為、セキュリティ上のリスクが低減します。

2つ目のメリットとして、秘密鍵は使用する度、設定したパスワードの入力を求められますがSSHエージェントに登録しておくことで、パスワードの入力を省略出来ます。

以下のコマンドを入力し、SSHエージェントを起動します。

~ % eval "$(ssh-agent -s)"

起動できたら以下のように表示されます。(pidの後の識別番号は環境により異なります)

Agent pid 59566

設定ファイルに秘密鍵を設定する為、以下のコマンドを実行する。

~ $ open ~/.ssh/config

ファイルが無ければ以下のように表示されます。

The file /Users/YOU/.ssh/config does not exist.

ファイルが無ければ、以下のコマンドを実行し、設定ファイルを自作する。

touch ~/.ssh/config

作成出来たら以下を設定ファイルに記述する

Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

記述が出来たら、SSHエージェントに秘密鍵を登録する。

ssh-add --apple-use-keychain ~/.ssh/id_rsa

以下のように表示されたら、登録完了。

Identity added:

⑥SSHキーをGitHubへ設定する

これまでに作成したSSHキーを使用して、GitHubへ設定します。

以下のコマンドを実行して公開鍵をクリップボードに保存します。

pbcopy < ~/.ssh/id_rsa.pub

保存したら、GitHubを開いて、以下のユーザーアイコンをクリックし設定項目へ移動します。
スクリーンショット 2023-09-28 13.26.09.png
スクリーンショット 2023-09-28 13.24.22.png
設定項目に移動したら、SSH and GPG keysを選択します。
スクリーンショット 2023-09-28 15.30.27.png
移動したら、New SSH keysを選択します。
スクリーンショット 2023-09-28 15.34.51.png
Titleにはid_rsa.pubや公開鍵などのタイトルを入力し、Keyには先程、クリップボードにコピーした公開鍵を貼り付けする。この時に余計な空白がないように注意しなければいけない。
スクリーンショット 2023-09-28 15.38.49.png

⑦SSH接続をテストする

登録したSSHキーが通信出来るのか予め確認をする。
以下のコマンドを入力してください。

~ % ssh -T git@github.com

以下のように表示出来たら、接続完了。

Hi Rakuto-NOV! You've successfully authenticated, but GitHub does not provide shell access.

⑧Gitに内容をコミットする。

cdで編集したいファイルがある直前のディレクトリまで移動する。
これをカレントディレクトリという。
例えば、下記のような形

my_project/
├── src/
   ├── main/
   │   ├── java/
   │   │   └── com/
   │   │       └── example/
   │   │           └── MyClass.java
   │   └── resources/
   │       └── config.properties
   └── test/
       ├── java/
       │   └── com/
       │       └── example/
           └── TestClass.java
       └── resources/
           └── test_config.properties

MyClass.javaを編集したい場合、exampleがカレントディレクトリとなる。
その場合、以下のようにコマンドを入力する。

~ % cd my_project/main/java/com/example

移動したら、カレントディレクトリ上にローカルリポジトリを作成します。

example % git init

以下のように表示されたら作成完了。

Initialized empty Git repository in

作成したら以下のように入力し、更新したファイルを選択する。選択せず、全てのファイルを更新する場合は、git add .

~ % git add MyClass.java

選択したら、ブランチ名を設定する。以下のように入力します。

git checkout -b develop

入力したら、以下のコマンドを実行し、設定したブランチになっている事を確認します。

~ % git branch

確認したら、コミットする。ダブルクォーテーション内には更新内容を記述します。

git commit -m “first commit”

⑨GitHubにプッシュする。

コミットしたら、それをGitHub上へプッシュします。
プッシュするにはリモートリポジトリの作成が必要です。
以下のようにSSHを選択し、右のコピーを選択します。
スクリーンショット 2023-09-28 16.36.18.png
コピーしたらターミナル上で、以下のコマンドを入力する。

git remote add origin git@github.com:Rakuto-NOV/TEST.git

originまで入力し後は貼り付け。
ここでのoriginはリモートリポジトリ名になります。
以下のように入力することでプッシュすることが出来ます。

git push origin develop

github上で反映されていれば、完了。

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