4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GITについて初歩的なところから勉強してみた

Last updated at Posted at 2020-06-02

(1)はじめに

最近、業務でGitを使うことになり、勉強をはじめたばっかりの初心者です。
そもそも、PULL!?PUSH!?リポジトリ!?みたいな状態だったので、初歩的なことから勉強してみましたので備忘録として残していこうと思います。
(基礎的なことしか書いてないです)

(2)用語の説明

リポジトリについて

リポジトリとは、フォルダ、ファイル、ソースなどを保存しておく場所のことを指す。
Gitでは以下の2種類存在する。
・リモートリポジトリ:サーバー上に配置され、ここでチームで共有する。
・ローカルリポジトリ:ユーザーそれぞれのPC上に配置されている。

Aさんと同じソースを共有しているとすると、リポジトリは、こんな感じ。
スクリーンショット 2020-06-02 19.29.15.png

詳細には、リポジトリについてはこのようになっている。
masterブランチ(オレンジで囲ったところ)はデフォルトでできる。
・リモートリポジトリ:デフォルトで「origin」と言う名前がつけられる。
・リモート追跡ブランチ:「リモートブランチ」とも呼ばれる。リモートリポジトリを追跡するブランチ。リモートリポジトリのブランチ名を引き継ぐ。(リモートリポジトリが、「mybranch」だったら、リモート追跡ブランチは、「origin/mybranch」となる)
スクリーンショット 2020-06-02 22.47.41.png

ブランチについて

作業履歴を分岐して記録していくもので、他のブランチに影響されない。
この図では、masterブランチとmybranchが存在する。
スクリーンショット 2020-06-02 22.47.36.png

実際にどこで使うの?と思ったので、実際にgit使っている方に聞いてみたところ、「Develop(開発用)」ブランチを作成して本番環境と分けたりするらしい。
(あと、この記事には書いてないけどコンフリクトが起きた時とか)

ブランチ関連のGitコマンドは…
・ブランチの作成(mybranchを作成する)
 git branch mybranch
・ブランチに入る(mybranchに入る)
 git checkout mybranch

 (ブランチに)入るなのに、ホテルのチェックインみたいな感じで"checkin"じゃないんだとモヤモヤしてました。
 "checkout"は、英語で、「(図書館で本を)借りる」という意味もあるようで、それからきているみたい。

(3)リモート・ローカルリポジトリの作成方法

2パターン紹介する。

方法1 : リモートリポジトリを作成してクローンする(コピーみたいなイメージ)

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

Git Hubでは、リポジトリ名とか指定するだけでできた。
スクリーンショット 2020-06-02 21.30.38.png

②初めてGit Hubを触る際は、SSHキーの設定が必要となる。

※SSHキーの設定は、ここを参考にしました。
https://qiita.com/shizuma/items/2b2f873a0034839e47ce

③ローカルリポジトリを作成したい場所に移動して、リモートリポジトリ(①)をクローン(コピー)する

git clone git@github.com:[ユーザー名]/[リモートリポジトリ名].git```

※赤枠のところに、```git@github.com:[ユーザー名]/[リモートリポジトリ名].git```があるので、コピーしてもOK
<img width="1216" alt="スクリーンショット 2020-06-02 23.41.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/f9fd4f16-b446-b356-fd5a-1821adce155c.png">



## 方法2 : ローカルリポジトリを作成して、pushする。
### ①リモートリポジトリの作成
方法1の①と同じ

### ②初めてGit Hubを触る際は、SSHキーの設定が必要となる。
方法1の②と同じ

### ③ローカルリポジトリを作成したい場所に移動して、ローカルリポジトリの作成
```cd [ファイル]
git init```

### ④ローカルリポジトリ(③)をリモートリポジトリ(①)にPUSH
```git add .
git commit -m "first commit"
git remote add origin git@github.com:[ユーザー名]/[リモートリポジトリ名].git
git push origin master```

# (4)pull
なんとなく分かってきたところで、pullを扱う。
リモートリポジトリからローカルリポジトリへ最新版を融合(マージ)させるイメージ。
<img width="502" alt="スクリーンショット 2020-06-02 22.25.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/c16b2544-aedb-82ba-f717-a7291c3d19e1.png">

Gitコマンドはこれだけ。
```git pull```

今回は、masterブランチのみを考える。
内部では、fetch、mergeという処理をしている。
<img width="461" alt="スクリーンショット 2020-06-02 22.46.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/760916b9-e30b-75b9-b2f6-5b89a0d7639b.png">


# (5)push
pushするときは、以下の流れで行う。
```git add .
git status
git commit -m 'message'
git push origin [ブランチ名]```

git status では、add(ステージングエリアに追加)はされたけど、commit(ローカルリポジトリに反映)されていないものを確認することができる。(ファイルが追加されたよ〜とか)

<img width="461" alt="スクリーンショット 2020-06-02 22.43.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/6d8e6ee3-5810-c8ac-f5e8-2614bb4c0bb4.png">

ちなみに、masterブランチのみを考えると
```git add .
git status
git commit -m 'message'
git push origin master```
<img width="461" alt="スクリーンショット 2020-06-02 22.45.28.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/1baacf26-428c-3341-1dc9-f4345cdcda37.png">


(6)まとめ
なんとなく理解した気がするのですが、やっぱり難しい…
コンフリクトの解消法とか、まだ完全に理解しきれてないので、いつかまとめようと思います。
Gitに関しては、慣れるのみなんだろうなあと思っています。
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?