Git for Windowsの設定方法メモ

#はじめに

windowsのPCでGitによるソースコード管理をやってみようと思い、ネットで調べながら挑戦しました。
結構大変だった（私の知識不足というのあるのですが...）ので、詰まったところと参照したページを備忘録的にまとめておこうかなと思います。

##メイン参照記事
メインで参照したのは下記ページです。
[いまさらGit for Windowsのインストール、GitHubに接続してみた。](https://qiita.com/manabu-watanabe/items/ecf1b434baf305adaa00)

ただ、ここに書いてないエラーなども頻発したので、その際に参照した記事も結構ありました。

##詰まった点と追加の参照記事

>[デフォルトのエディタを設定(コミットコメントなどで使用します。)](https://qiita.com/manabu-watanabe/items/ecf1b434baf305adaa00#%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AE%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AA%E3%81%A9%E3%81%A7%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99)

ここについては個人的にエディターはATOMを利用する予定だったので、うっかりVimのまま素通りしてしまうところでした（どちらがいいとかはよく分からないです笑）

>[インストール後の設定](https://qiita.com/manabu-watanabe/items/ecf1b434baf305adaa00#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%BE%8C%E3%81%AE%E8%A8%AD%E5%AE%9A)

ここは正直最後までよく分からなかったですね...
デフォルトのホームディレクトリを変えようということなのですが、この設定変更が上手くいかず2時間くらい悩みました笑
書いてあることに従って環境変数の設定は出来るのですが、最後にBashコマンドの`$ pwd`を打ち込んでもどうしても`/c/home`にならなかったです。

色々記事を探しているうちにこちらの記事（[【Windows】Gitの環境構築をしよう！](https://prog-8.com/docs/git-env-win)）を見つけました。
読んでいると「なんだ、別に変数変えなくてもいいのか」となり、変数を変えずGit Bashを実行すると無事開きました！

>[GitBashからGitHubへの接続](https://qiita.com/manabu-watanabe/items/ecf1b434baf305adaa00#gitbash%E3%81%8B%E3%82%89github%E3%81%B8%E3%81%AE%E6%8E%A5%E7%B6%9A)

ここも相当苦労したところです。

- `$ git clone`を実行できない

以下のようなエラーが出ていました。

```
The authenticity of host '[XX.XX.XX.XX]:XX [XX.XX.XX.XX]:XX' can't be established.
ECDSA key fingerprint is SHA256:hogehogehogehogehogehogehogehogehogehogheog.
Are you sure you want to continue connecting (yes/no)? 
```
調べてみたところ、sshでの初回ログイン時に毎回これを聞かれるとのこと。
参照した記事：[sshで初回ログイン時に"The authenticity of host 'host' can't be established..."を聞かれないようにする設定](https://journal.lampetty.net/entry/wp/391)

ということで、この参照ページにも記載の以下の方法でこのメッセージを回避しました。

```
host [XX.XX.XX.XX]:XX [XX.XX.XX.XX]:XX 
  StrictHostKeyChecking no

$ chmod 600 ~/.ssh/config
```


- git cloneがまだ実行出来ない

これで先ほどのメッセージは出なくなったのですが、まだ実行されません...
別のエラーが出ていました。

```
fatal: could not create work tree dir '<repo name>' : 
Permission denied
```
何かなと思って調べてみると、まさに同じ課題を抱えている人の以下の質問を見つけました。
参照した記事：[git clone fatal: cannot create work tree dir permission denied](https://stackoverflow.com/questions/36728469/git-clone-fatal-cannot-create-work-tree-dir-permission-denied/54573491)

解決策を見ると

```
sudo git clone <url>
```
とすればいけるよ！と書いていたので実行。

するとまた別のエラーが...

```
bash: sudo: command not found
```
調べてもよく分からなかったので、以下のページに記載されていた別の方法で試すことに。
参照した記事：[fatal: could not create work tree dir 'kivy'
](https://stackoverflow.com/questions/16376035/fatal-could-not-create-work-tree-dir-kivy)

```
cd ~/
mkdir code
cd code
git clone https://github.com/xxxx/xxxx
```

これで何とかgit cloneすることが出来ました！
いやーかなり苦労しましたね笑

>[add](https://qiita.com/manabu-watanabe/items/ecf1b434baf305adaa00#add)

新規ファイルを作成してインデックスに追加するという作業なのですが、これが最後の難関でした。

`vi addfile`というコマンドを実行すると何やら謎のページになり、今までのGit Bashの操作が全く効かない状態に...

調べてみるとそれはviエディターというものらしく、その操作方法にのっとる必要があるとのこと。
参照した記事：[viコマンドについて詳しくまとめました 【Linuxコマンド集】](https://eng-entrance.com/linux-command-vi)

保存は`Ctrl+S`で出来るものだとばかり思っていたのが、viコマンドでは`:w`や`:wq`であることに衝撃を受けつつ、何とかファイルを作成/編集することが出来ました！

#まとめ
初めての経験ということもあり、かなりの時間を費やしてしまいました笑
よく職場で見ている「githubを利用したバージョン管理」がこんなに未知のものであふれているのかと驚愕しつつ、完了した時と達成感もひとしおでした。

記事中の記載で誤っている点などありましたら、コメントでご指摘いただけるとありがたいです！