githubでの環境作成簡易手順書

-git基礎コマンド
基礎構造
【１】リモートリポジトリをローカルリポジトリにcloneしてくる
【２】ローカルリポジトリ内で作業環境を作り、作業する
【３】作業ディレクトリをadd,commit,pushしてリモートリポジトリの作業ブランチを更新
【４】リモートリポジトリの作業ブランチをmainにmargeする
【５】リモートリポジトリのmainをpullして、ローカルリポジトリのmainを更新する
![GitHub-cheat-sheet-graphic-v1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329706/c40843b8-010b-dc97-bf3a-9f64b8db9b78.jpeg)

【１】リモートリポジトリをローカルリポジトリにcloneしてくる

①gitコマンドを使えるようにする
```
gitコマンドを使いたいディレクトリに行き
git init

以下ができていればよい
ls -a .git
.        HEAD        config        hooks        objects
..        branches    description    info        refs
```

②リモートリポジトリに "origin" という名前を設定
以降、"origin" を使用してリモートリポジトリURLを参照
(SSHのURLを取ってくる)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329706/5bae6911-8d45-b138-fa51-4a1650ced4ce.png)

```
git remote add origin リポジトリURL
```

③リモートリポジトリをローカルリポジトリにcloneしてくる
```
git clone リポジトリURL
　リモートリポジトリに存在する全てのファイル群の複製をローカルエリアに作成
　URL末尾名(リポジトリ名)のディレクトリと「.git」ファイルが作成
```
リモートリポジトリのファイル群を全て複製するコマンド
引数にはリポジトリURL
実行後「リポジトリ名のディレクトリ」と「.git」ファイルが作成
既に同名のディレクトリがある場合は使用不可
非公開設定のリポジトリの場合はユーザー名とパスが必要
一番最初のみ実行するコマンド

【２】ローカルリポジトリ内で作業環境を作り、作業する

①　branch確認
```
git branch 
```
②必要なbranchを作成
mainがなければ作成
作業するbranchを作成
```
git checkout -b 名前

git branch 
目的の作業branchが作成されているか確認
緑色になっているのが現在いるbranch
```
③目的のbranchに必要なファイルなどがあるか確認
```
ls
```

【３】作業ディレクトリをadd,commit,pushしてリモートリポジトリの作業ブランチを更新
![GitHub-cheat-sheet-graphic-v1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329706/c40843b8-010b-dc97-bf3a-9f64b8db9b78.jpeg)

①　作業ディレクトリのワーキングエリアの状態とステージングエリアの状態を表示
赤字があれば更新が必要②を移行を行う
```
git status
```

②workigエリアからstaginエリアにステージングさせる
```
git add .
　変更したファイルをすべてステージングエリアに追加
git add ファイル名
　ファイルをステージングエリアに追加
git reset ファイル名
　ファイルをステージングエリアから戻す
git reset HEAD [file-path]
　一部のファイルだけ選択するには、ファイルのパスを記載
```
③作業ディレクトリのワーキングエリアの状態とステージングエリアの状態を表示
赤字があれば更新が必要②を移行を行う
＊赤字が消えない場合もあるので、指定しても消えない場合は④に進む
```
git status
```

④ステージエリアに追加された記録を残す
これがないと何をいつ変更したのか追えなくなるので、
コメントは残すこと！

```
git commit -m "first commit"
　　ステージエリアに追加されたファイルを
　　ローカルエリアに”first commit”というコメント付きでコミット
```
⑤リモートリポジトリの作業ブランチを更新
このときリモートリポジトリに作業ブランチがない場合新しく作成される

```
git push origin ブランチ名
　ローカルエリアからリモートエリア(github)に共有して更新
```


【４】リモートリポジトリの作業ブランチをmainにmargeする
```
作成中
```

【５】リモートリポジトリのmainをpullして、ローカルリポジトリのmainを更新する
①作業ブランチにいるか確認する、いないなら移動する
```
確認
git branch

移動
git checkout　ブランチ名
```
②【４】でリモートリポジトリが更新されたので、
ローカルも更新する。

```
git pull リモートリポジトリ名　ブランチ名

git pull origin main

git pull origin feature
　リモートリポジトリの更新されているファイルのみを上書き
引数にはリモートリポジトリ名とブランチ名
既に同名のディレクトリがある場合でも使用可能
非公開設定のリポジトリの場合はユーザー名とパスが必要
2回目以降の更新時に実行するコマンド
```
③pullがうまく行かない場合
fetchを行う

```
git fetch origin
```
④ローカルブランチのmainに行き、lsコマンドで必要なファイルがあるか確認する
```
git checkout main

git branch
mainが緑

ls
```
備考
リモートリポジトリの最新情報がローカルに取得
```
リモートリポジトリから目的のブランチをローカルに作成する
git checkout --track origin/<branch-name>
リモートリポジトリからすべてのブランチをローカルに作成する
git checkout --track origin/*
```
```
作業ディレクトリを作成
作業ディレクトリに入る

git init
ls 

git clone リポジトリURL
　リモートリポジトリに存在する全てのファイル群の複製をローカルエリアに作成
　URL末尾名(リポジトリ名)のディレクトリと「.git」ファイルが作成

リモートリポジトリのファイル群を全て複製するコマンド
引数にはリポジトリURL
実行後「リポジトリ名のディレクトリ」と「.git」ファイルが作成
既に同名のディレクトリがある場合は使用不可
非公開設定のリポジトリの場合はユーザー名とパスが必要
一番最初のみ実行するコマンド
```
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329706/9b905ac3-c158-8687-7232-130b505eb50c.png)

```
git clone -b [指定したいブランチ名] [リポジトリパス]
 git cloneコマンドは指定がない場合mainブランチを取得するが、
特定のブランチを指定したい場合は-bオプションを使用

git pull リモートリポジトリ名　ブランチ名

git pull origin master
git pull origin feature
　リモートリポジトリの更新されているファイルのみを上書き
引数にはリモートリポジトリ名とブランチ名
既に同名のディレクトリがある場合でも使用可能
非公開設定のリポジトリの場合はユーザー名とパスが必要
2回目以降の更新時に実行するコマンド

git clone -b [指定したいブランチ名] [リポジトリパス]
```
```
-ブランチ削除
ローカルのブランチを削除する場合
git branch -d localBranchName

リモートのブランチを削除する場合
git push origin --delete remoteBranchName

ローカルリポジトリを削除
rm -rf .git
```
```
push前のcommit実行を戻す
git logで<commitId>　を確認
git reset --hard ^ 一つ前
git reset --hard <commitId>
```