はじめに
GitやGitHubについて説明したWebページはネット上に無限にありますね。ですが、どのサイトを見ても詰まってしまうという方はいることでしょう。私もそうでした。
最近ようやくそれなりにGitやGitHubを使えるようになったので、流れを忘れないように残しておくことにしました。
今回は以下の目的を達成し、とりあえず使えるようになることを目指しましょう。
- GitとGitHubの違い
- GitHubのアカウント作成
- ssh鍵の登録
- Gitの設定
- 自分のPCからGitHubにコードをあげる
- GitHubから自分のPCにコードをもらう
ここまでです。マージとかフェッチとか聞いたことはあるかもしれんみたいなやつは、次回があれば書きたいと思います。
GitとGitHubの違い
まずはGitとGitHubの違いについて知りましょう。探せばどこにでも詳しくまとまってると思うので、ここでは簡単にそれぞれの役割を。
- Gitはソースコードのバージョン管理
- GitHubはインターネット上でのソースコードの共有
すごく簡単に言うとこんな感じです。基本用語についても軽く解説します。
- リポジトリ:ファイルが入っているディレクトリのようなもの
- ローカルリポジトリ:自分のPC上にある、Gitで管理しているリポジトリ
- リモートリポジトリ:GitHub上にあるリポジトリ
- コミット:変更した内容のセーブ
- プッシュ:セーブ内容をリモートリポジトリに送ること
- クローン:リモートリポジトリをローカルにコピーすること
GitHubのアカウント作成
それでは始めていきましょう。まずこちらのGitHubの公式サイトに従ってアカウントを作成してください。
以上です。簡単ですね。
無料アカウントではファイルが全て公開になりますが、有料アカウントであればprivateファイルとすることができます。また学生であれば、申請すればprivateファイルを作成することができます。
ssh鍵の登録
ssh鍵の作成と登録をします。GitHubではssh鍵を登録することで本人認証を行います。
おそらくこの辺りで何が何だかわからないよとなってしまう人が多いのではないでしょうか?
わかりますわかります。ssh鍵については全然書いていないページなども多くありますからね。ここは丁寧に見ていきましょう。
まずssh鍵を登録するディレクトリ(.ssh)に移動します。
$ cd ~/.ssh
もし無ければ作成した上で移動します。
$ mkdir ~/.ssh
$ cd ~/.ssh
ssh認証を行うための公開鍵と秘密鍵のペアを作ります。
$ ssh-keygen
すると
Enter file in which to save the key:
と聞かれるので好きなファイル名を指定します。(例:github_rsa
)
Enter passphrase (empty for no passphrase):
上のように聞かれたら何も入力せずにエンターを押してしまって大丈夫です。
これで公開鍵(<ファイル名>.pub)と秘密鍵(<ファイル名>)が作成されました。ここからは公開鍵(github_rsa.pub)、秘密鍵(github_rsa)として説明します。
ここから鍵の登録に入ります。ssh-addによって秘密鍵を登録します。
$ ssh-add github_rsa
次に公開鍵の中身を表示し、コピーします。
$ cat github_rsa.pub
表示された内容を、ssh-rsa
の部分も含めた全てをコピーします。
GitHubの設定画面(https://github.com/settings/keys )を開き、New SSH Key
をクリックします。
コピーした内容をKey欄に貼り付けます。Title欄には適当な名前をつけ、Add SSH key
をクリックします。
terminalに戻り、
$ ssh git@github.com
と入力します。
すると、
Are you sure you want to connect
と表示されると思うので、yes
と入力してください。
そのあとに
Hi <ユーザ名>! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
と表示されれば成功です。
Gitの設定
Gitが入っていない場合は
$ sudo apt-get install git-all
でインストールすることができます。
次にGitのユーザ名とメールアドレスを設定します。こちらはGitHubと同じものを設定します。
$ git config --global user.name ユーザ名
$ git config --global user.email メールアドレス
以下のようにコマンドを打つと設定を確認することができます。
$ git config --global user.name
$ git config --global user.email
自分のPCからGitHubにコードをあげる
ローカルリポジトリからリモートリポジトリへのプッシュです。
GitHub上でのリモートリポジトリの作成
GitHubで自分のアカウントページを開き、右上にある+
をクリックし、そこからNew repository
を選択します。
そしてRepository name
を付け、Public/Private
を選択し、Initialize this repository with a README
にはチェックを付けず、Create rpository
をクリックする。これだけです。
すると作成されたリポジトリページに、
git remote add origin https://github.com/ユーザ名/リポジトリ名
git push -u origin master
のような記述が見つかりますので、この2行をコピーしておきます。
PC上でのローカルリポジトリの作成
GitHubに挙げたいディレクトリに移動します。
そこで以下のコマンドを打つことで、今いるディレクトリをローカルリポジトリにします。
$ git init
以下のコマンドで.git
というディレクトリが作られているかを確認します。
$ ls -a
ディレクトリにあるファイル情報をgitに加え、コミットしていきます。
$ git add .
$ git commit -m "Initial commit"
git add
はGitで管理するファイルを選ぶコマンドです。.
は現在いるディレクトリの全てのファイルということです。.
の代わりにファイル名を入力することで、そのファイルだけGit管理することもできます。
git commit
はadd
したファイルをコミットするコマンドです。" "
の間にはコミットする際のコメントを書きます。
次に上でコピーした
git remote add origin https://github.com/ユーザ名/リポジトリ名
git push -u origin master
を打ち込むのですが、このままではなくhttps://github.com/
をgit@github.com:
に変更します。
$ git remote add origin git@github.com:ユーザ名/リポジトリ名
$ git push -u origin master
これでssh通信を行うことができるようになりました。
また、これでローカルリポジトリの内容がリモートリポジトリにコピーされます。リポジトリページのCode
タブから確認してみてください。
GitHubから自分のPCにコードをおとす
リモートリポジトリからローカルリポジトリへのクローンです。
リモートリポジトリをクローンするディレクトリに移動し、以下のコマンドを打ちます。
$ git clone git@github.com:ユーザ名/リポジトリ名
おわりに
今回はGitHubに登録し、リポジトリを作成し、sshで通信できるようにするまでを行いました。GitやGitHubにはまだまだ機能がたくさんあります。色々使っていく中で試してみてください!
また、新しいツールを使う中で絶対に知らないエラーが出てくることはあると思います。そんな時はエラー文をそのままコピーして検索してみましょう。GitHubなどの有名なツールであれば、ほぼほぼ解決策が見つかります。
システムエンジニアとして働く人にとっては大切なツールだと思うので、ぜひ使いこなしてください!