Fresopiya
場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。

まずはとにかく自由を目指すエンジニアのブログです。
「哲学」と「プログラミング」と「政治経済」、「ブログ」がメインになるかと。
プログラミング

【Git】SourceTreeとGitHubを利用した、リポジトリの作成とリモートへの変更の反映方法

どうも、とがみんです。

以前の記事で、Gitを扱うために、「GitHub」「SouceTree」について紹介しました。


この記事では、初めて、GitHubとSourceTreeを利用して、リポジトリの作成とリモートへの変更の反映方法を紹介していきます。

Gitの仕組みに関しては以下の記事を参考にしてみてください。


ローカルリポジトリとリモートリポジトリの作成

まず、ローカルリポジトリについて紹介します。

SourceTreeを起動し、以下のNewを選択し、Create Local Repositoryを選択します。

すると以下のような画面が表示されるので、Gitで管理したい開発中のアプリケーションが置いてあるパスを指定し、createを押します。

すでにGitHubとの連携が済んでいる場合はAlso create remote repositoryにチェックを入れると、リモートリポジトリも同時に作成されますが、まだ連携されていないので。チェックを入れずにすすめます。

すると、ローカルリポジトリが作成されるので、以下の部分を選択します。

すると、以下のような管理画面が表示されます。

次に、リモートリポジトリの作成方法について説明してきます。

リモートリポジトリの作成

リモートリポジトリの作成についてです。

Githubのホームページへいき、ログインします。

そして、Repositorysを選択します。

以下のような画面が表示されるので、右上のNewボタンを押します。

すると、リモートリポジトリの作成画面が表示されるので入力していきます。

Initialize this repository with a READMEは、リポジトリの中にあらかじめREADMEファイルを作成しておく場合にチェックしておきます。

入力後、Create repositoryボタンを押します。これで、リモートリポジトリの作成が完了です。

GitHubへの公開鍵の登録

Githubに繋ぐには公開鍵・秘密鍵を作成し、公開鍵をGithubに登録する必要があります。

また、秘密鍵は自分のサーバ(PC上)に置く必要があります。

公開鍵・秘密鍵というのは、通信を安全に行うために、情報の暗号化と解読するために必要なものです。

この方法について説明してきます。仕組みに関しては以下の記事を参考にしてみてください。


公開鍵・秘密鍵のペアの作成

まず、ターミナルを開き以下のコマンドを入力し、鍵を入れるフォルダに移動します。

$cd ~/.ssh

その後、lsコマンドを打ち、フォルダの中身を確認します。

すでに、id_rsaファイルや、id_rsa.pubファイルがあれば、すでに鍵が存在するので、次の処理はする必要はないです。

ない場合は、以下のコマンドを入力し、鍵を生成します。

メールアドレスは、gitHubに登録しているアドレスです。

$ssh-keygen -t rsa -C mail@mail.com

鍵を保存するフォルダの指定と、パスワードの設定をして完了です。

生成後、.sshフォルダに鍵情報の書かれたファイルid_rsaid_rsa.pubが存在するかどうか確認してください。

GitHubに公開鍵を預ける

GitHubに公開鍵を預けるので、id_rsa.pubの中の公開鍵をコピーします。

ターミナルにて、以下を入力し、クリップボードに公開鍵をコピーします。

$ pbcopy < ~/.ssh/id_rsa.pub

次に、GitHubのページに行き、setting > SSH and GPG keysを選択し、以下のページに行きます。

New SSH keyボタンを押すと、以下の画面が表示されます。タイトルは自分のどのPCを使用しているかわかるような任意の名称を入力します。

この作業は一度だけすれば良いので、次回から新しいプロジェクトを始める際はする必要はないです。

>GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

>SSHの公開鍵を作成しGithubに登録する手順

SourceTreeとGitHubの連携

SourceTreeから、GitHubへソースコードをアップロードする際に、どこにアップロードするかといった設定をする必要があります。

まず、SourceTreeの画面の右上のSettingボタンを選択します。

その後、以下のような画面が表示されるので、Remortesを選択し、Addボタンを押します。

ここで、リモートリポジトリの設定をしていきます。

URLのところには、リモートリポジトリのURLを貼り付けます。

入力したらOKボタンを押し、GitHubとSourceTreeの連携が完了です。

リモートリポジトリのURLは以下から取得できます。

GitHub上のClone or downloadを選択し、右上のUse SSHを選択し、URLが取得できます。

リモートへの変更のアップデート方法

次にリモートへの変更のアップデート方法についてです。

まず、リモートリポジトリにあるファイルをローカルリポジトリに持ってくるためにPullします。

SourceTree左上のPullボタンを押し、次に画面真ん中のRemote branch to pullmasterを選択します。

SourceTreeのHistoryを確認すると以下のようになっています。

masterはローカルのmasterブランチで、gitTest/masterはリモートのブランチです。

2つとも真横に並んでいるので、これは両者のブランチの内容が同じ状態であることを示しています。

次に、ローカルの作業ディレクトリの内容をローカルリポジトリへ反映させます。

SourceTreeの画面の以下のチェックBoxにチェックを入れると、ステージングされます。

commitしたいファイルのみ、ステージングします。

今回は、gitTest.htmlというファイルだけです。

その後、画面左上のCommitボタンを押すと、下のように、メッセージを入力する欄が現れるので、変更内容の説明等を記述し、画面右下のcommitボタンを押します。

これで、ローカルリポジトリに反映されるので、次にリモートリポジトリにアップロードします。

以下のPushボタンを押します。

master横のチェックBoxにチェックを入れ、OKボタンを押します。

これで、リモートリポジトリへのアップロードが完了です。

GitHubを見てみると、以下のようにファイルがアップロードされていることが確認できると思います。

まとめ

初めてSourceTreeとGitHubを利用して、リポジトリの作成とファイルのアップロードをするまでの操作について説明してきました。

何か不明点、疑問点等あればご指摘いただけると嬉しいです。

参考文献

>githubとsourcetree連携(画像あり、初めての方向け)

>【図解】初心者も分かる”公開鍵/秘密鍵”の仕組み~公開鍵暗号方式の身近で具体的な利用例やメリット〜

>GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

>[SSHの公開鍵を作成しGithubに登録する手順](http://monsat.hatenablog.com/entry/generating-ssh-keys-for-github)