# gitからソースファイルを取得する
## 前準備
### 公開鍵を作成する 1. ssh-keygenでRSA-2048の鍵を作成し、公開鍵を「id_rsa.pub」、秘密鍵を「id_rsa.ppk」などの拡張子で保存する。
場所はC:/Users/(ユーザー名)/.sshフォルダを推奨。 ```cmd ssh-keygen -t rsa -b 2048 ```
1. ssh-keygenで作成した秘密鍵(id_rsa拡張子なし)ファイルからPuttygenで秘密鍵を再作成する。
1. SourceTree > ツール > SSHキーの作成/インポートからPuttygenを起動 1. Puttygen > Load > 秘密鍵ファイルを選択 1. Save private key 押下で生成
1. gitへのユーザーアカウント追加希望の旨と、公開鍵ファイル「id_rsa.pub」をgit管理者へ共有する。
## gitからソースを取得する(SourceTree/Windowsを使う場合)
1. SourceTreeを[ダウンロード](https://www.sourcetreeapp.com/)し、Bitbucketのアカウントを作成してインストールする。 googleアカウントでBitbucketクラウドを、1人での利用として許諾を進めるとスムース。
1. gitリポジトリをローカルにクローンする
- SourceTreeを起動し、[ツール]-[SSHエージェントを起動]をクリックする。
- タスクトレイのPageantを右クリックし、[Add Key] で、秘密鍵「id_rsa.ppk」を指定する。
- 「+」で新規タブを開き「Clone」で次のバラメータを指定し、「クローン」をクリックする。
- リポジトリに、 ssh://git@dev.uchicomi.com/opt/git/uchicomi-source.git
- フォルダに、 C:\Users\(ユーザー名)\Documents\projects\uchicomi-source ※フォルダがなければ作成する。
- プロジェクト名に、uchicomi
- Local Folderは「ルート」
※リポジトリタイプの判定が「Gitリポジトリです」と表示されないときは、公開鍵、秘密鍵の指定を見直す。
- [オプション]-[全般]で、デフォルトユーザー情報を指定する。
- 複数リポジトリを扱っており個別のユーザー情報を用いる場合はさらに次の手順を行う。
- クローンで作ったリポジトリのタブを選択し、[設定]-[詳細]を開く。
- ユーザー情報の「グローバルユーザー設定を使う」のチェックを外し、フルネームとメールアドレスを指定して[OK]をクリックする。
- 同じ要領で「+」で新規タブを開き「Clone」で次のバラメータを指定して一連の操作を次の内容で行う。
- リポジトリに、 ssh://git@dev.uchicomi.com/opt/git/uchicomi-documents.git
- フォルダに、 C:\Users\(ユーザー名)\Documents\projects\uchicomi-documents ※フォルダがなければ作成する。
- プロジェクト名に、uchicomi-documents
- クローンした先のフォルダ以下の.git/configを開き、次のquotepathの行を追加しておく。→ターミナルを使った際の日本語の文字化けが解消される。
```bash
[core]
quotepath = false
```
## 補足
1. コマンドラインのgit for windowsを使う場合
- ssh接続の設定にホスト名の指定を反映する。 (この設定をしないとホスト名で接続する際に公開鍵が適切に参照されないことがある)
```cmd
Host dev.uchicomi.com
hostname 52.197.79.117
```
- 開発者のローカルPCで、新しいリポジトリをcloneする。 (親フォルダで実行し、uchicomiフォルダにリポジトリを作る例)
```cmd $ mkdir /Users/(ユーザー名)/Documents/projects $ cd /Users/(ユーザー名)/Documents/projects $ git clone git@dev.uchicomi.com:/opt/git/uchicomi-source.git uchicomi-source ```
- cloneしたリポジトリの .git/config ファイルに次のような[user]セクションを記載する。
```cmd
[user]
name = foo bar # 読める名前
email = foo@bar.com # メールアドレス
```