初学者の方は必見！エックスコードプロジェクトをGithubで管理する具体的な方法

#概要
みなさん、こんにちは。

以前、２記事にわたってGithubのコマンドを解説をしました.

[githubを理解しよう! ①](https://qiita.com/syunta061689/items/ff80ab37641d6761d916)
[githubを理解しよう! ②](https://qiita.com/syunta061689/items/fb1cdc059cd543272c2f)

しかし、コマンドの意味を理解しても具体的にGithubに新規リポジトリを作成して、管理するまでの具体的な流れが理解できる情報は少ないです。
そこで、今回は、エックスコードプロジェクトをGithubで管理や簡単なbranchやcommit機能を使ってみようと思います！

***※今回、お伝えする内容は、エックスコード上で簡単にできたりもしますが、あくまでも、わかりやすさを追求し、今回は何がなんでもGitHubでの管理をしたい人のための記事となっております。あらかじめ、ご了承ください。***

この記事をみる前に、Git をはじめからていねいにをみることをお勧めします！
https://github.com/takanabe/introduction-to-git

###環境

・Xcode - 11.3.1

・git - 2.26.0

・CLI - ターミナル



#エックスコードプロジェクトを作成しよう！
まず、エックスコードプロジェクトを作成ししましょう！
ここでは、特別なことをする必要は一切ないので、自由に名前をつけてファイルを作成しましょう。

***私はGithubTestというファイルを作成しました !***

![スクリーンショット 2020-11-05 18.27.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/770482/3523d6cf-a44c-d654-dcd4-70ef15b2af03.png)


#ファイルの初期設定をしよう！

続いて、ターミナルを開きましょう！

ターミナルを開いたら以下のように表示されると思います。

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ %

```

表示された、***"cd"***コマンドを打ち込み,作成したエックスコードプロジェクトをターミナルにドラック&ドロップしましょう！！
ちなみに、***"cd"***は***change directory(チェンジディレクトリ)***の略です

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ % cd /Users/ファイルの作成者/Desktop/GithubTest 

```

***ファイルをターミナルに入れたら、エンターキーを押します！！***

そうすると、ターミナルがファイルを認識してくれます。

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest %

```


###次は作業する人とメールアドレスの情報を教えてあげましょう！
自分でユーザー名とメールアドレスを決めます

```swift:ターミナル

git config user.name  Yamada Taro //作業する人の名前
//エンター
git config user.email xxxxxxx@yyyyyy.com  //自分のメールアドレス
//エンター

```

今回、私は山田太郎さんで登録しました

これで初期設定は完了です。

#Githubで新規リポジトリを作成しよう！

Githubにアクセスしよう！
https://github.com/join

Githubのアカウントを作成していない人は、登録しましょう。
英語ですがかなり簡単に登録できます。

登録ができたら、色々機能があって混乱すると思いますが、重要なのは一つです。
Githubですることは、新規リポジトリを作成することです。

登録が完了していたら、Githubの左上に***new***のボタンがあるかと思います。
それをクリックしましょう。

![スクリーンショット 2020-11-05 19.14.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/770482/2e279437-0984-a3e8-82ba-38455a01ebab.png)

そしたら、下記の写真のような画面に行くと思います。

![スクリーンショット 2020-11-05 19.18.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/770482/b83d2e14-4a5c-385c-5421-2fcd0c0c380d.png)

Repository nameを決めましょう！
私はエックスコードのファイル名と同じにしました。
publicにチェック、Initialize this repository withの項目はチェックしなくて大丈夫です。

###そして、Create repositoryをクリック!

下記の画面になっていれば成功です！

![スクリーンショット 2020-11-05 19.21.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/770482/030115fc-5f45-3735-afd8-62a3e0c42fea.png)



#Github上にエックスコードプロジェクトを登録しよう!

###ここまでくれば、後はめちゃくちゃ簡単です！

簡単に言えば、下記の写真の ***...or create new repository on the command line***の部分のコマンドを実行するだけで、
GitHub上でエックスコードプロジェクトを管理することができます。

では、下記のコマンドを順に打ち込んでいきましょう

###git init

git init　コマンドは初期化を行なうコマンドです。
今から、git コマンドを打ち込んでいきますよという合図みたいなものだと思ってください。

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git init

```

コマンドを実行すると。。。

```swift:ターミナル
Reinitialized existing Git repository in /Users/ファイルの作成者/Desktop/GithubTest/.git/
```

このような返事が返ってきたら、初期化成功です。

###git add .

###次は、git add README.mdだと思いきや、git add README.mdは打ちこまないでください！！###

打ち込んでも、進めることができますがややこしいことになるので注意してください！！

さて、話を戻します！
***git add . をしていきましょう***

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git add . 
```

***git add .***コマンドは「GithubTestファイルの中身を全部」をcommitするために、準備(セット)しますよというコマンドになります。

このコマンド打ち込んでもメッセージは特にメッセージは返ってきません。


###git commit -m ""

次は、commitをしていきます.
commitはリポジトリの作業を記録するコマンドです。
現段階では、何もコードを書いていませんが、空の状態でも登録できるので登録しておきましょう。

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git commit -m "first commit"
```

""ここの中身は自由に変更できます。
最初は、"first commit"でいいでしょう.

エンターキーを押すと、たくさん英語が出てきますが、単にエックスコードのファイルの中身が読み込まれているだけなので、安心してください。

では、ちゃんとcommitができているかを確認しましょう。

###確認するコマンドは,git graphです###

実行し、下記のようになっていればcommit成功です。

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git graph
* 9e865bb  (HEAD -> main) 2020-11-05 Yamada first commit
```
#git branch -M 
###今回、このコマンドは実行する必要ありません！####

このコマンドは、中心となるブランチ名を変更するコマンドです。

一応、実装してみましょう。

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git branch -M master //名前をmasterに変更
//確認していきます
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git branch
* master
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git graph
* 9e865bb  (HEAD -> master) 2020-11-05 Yamada first commit
```
****ブランチ名がmasterになっていますね***
今回は、mainでも問題ないのでmainのままで進めていきましょう。

###git remote add origin 〜###

このコマンドは、コードを公開するために使用します。

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git remote add origin git@github.com:みなさんのアカウント名/GithubTest.git
```

ターミナルからの返答は特にありません。


###git push -u origin###

このコマンドは現在のブランチのローカルリポジトリの内容をリモートリポジトリに送信するために行います。
ローカルリポジトリというのは、ここでは、今手元にある GithubTestです。
そして、リモートリポジトリというのは、ローカルリポジトリであるGithubTestの内容をGithubに公開するために必要なファイルのことです。

これは、ターミナル上でのファイルなので、実態を持ちません。

ひとまず、コマンドを実行していきましょう

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest % git push -u origin main
```


なんか、色々コマンドが出てくると思いますが、、、最後に下記のような返答が返ってきたらpush成功です。



```swift:ターミナル
Branch 'main' set up to track remote branch 'main' from 'origin'.
```

上記で述べた実態を持たないリモートリポジトリとはorigin mainのことを指します。

では、確認していきましょう。

```swift:ターミナル
○○○○○@xxxxxxxxxxMBP ~ GithubTest % GithubTest % git graph
* 9e865bb  (HEAD -> main, origin/main) 2020-11-05 Yamada first commit
yamazakishunta@yamazakntanoMBP GithubTest % 
```

origin/mainが追加されていますね！これがリモートリポジトリですよ。実態を持たないファイルですよー

Githubに上げるためには必ずリモートリポジトリを経由する必要がありますので注意してください.

#Githubで確認しよう!

Github上でサイトを更新すると。。。

![スクリーンショット 2020-11-06 0.14.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/770482/10a9d345-968a-df17-3ce8-e4e271a3a872.png)

###このような形で表示された成功です！！！！###


ちなみに、緑色のAdd a README押すと。 
READMEを作成することができます。READMEにはアプリの簡単な説明を書いたりします。

実装するとこんな感じになります。


![スクリーンショット 2020-11-06 0.20.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/770482/e172d899-c4ed-a6ae-64ee-e5e21c2ee9fc.png)

この単語はどこかで見ましたよね？
そうです。git add README.md コマンドです。
これは、手動で追加するので、上記ではコマンドを実行しませんでした。




#パート2に続きます

いかがだったでしょうか？最初は作業が多く大変ですが、慣れると非常にシンプルでコードを公開することができます。

しかし、残念ながらこれだけではアプリ開発ができません。

実際のアプリ開発では、分岐したブランチで作業したり、マージしたりする必要がありますよね。
パート2では、実際の開発を意識したGithubの使い方を共有していきたいと思います！