Git
GitHub

Git初心者のGit

Gitとは?

Gitとは一言でいえば "バージョン管理システム" のことです。
Gitでは、サーバ上にあるリモート・リポジトリ(1本の木みたいなもの)と言うフォルダに対して、変更を加える(枝付け)ことでリモート・リポジトリ(1本の木)をよりカラフル(変更)にしていくと言うものです。
この枝付けを多数の人と行うのがGitHubです。

(注意)
ここでは、自分の作業場=ローカル・リポジトリをローカルと呼ぶ!
  また、一本の木=リモート・リポジトリをリモートと呼ぶ!
(注意)

Gitの流れ

具体的にどのような流れで行うか説明します。

1.ローカル環境が整ったら、リモートからフォルダを自分の作業スペース(ローカル)に持ってきます。

2.リモートで変更点をGit上issueと言う場所に変更したい内容と共に載せる。

3.ローカルでbranchを作成して、作ったbranchに移動する。

4.そのbranch上で変更を加え,addしてcommitしてpushする。

5.Gitに戻り、最終確認をして変更を許可する。

6.ローカル上にあるフォルダに変更内容を加えるためにmergeする。

Gitのコマンド

以下で[ ]これが登場するが、実際に入力する時は[ ]これを入力しない。

- init

$git init

これは、これから Git をするという宣言のようなもので、 Gitを使用できる環境を作ってくれる

- remote

$git remote add origin [SSH]

init を行った後にリモートにある [SSH] と共に入力することで自分の作業場(ローカル)を作ることができる。
(注意) 下の clone と remote のどちらで環境構築したかで後の進め方が変わってくる!

- clone

$git clone [SSH]

リモートに書かれてあるSSHを入力することでリモートからフォルダを持ってくることができる。

- branch

$git branch [branchname]

[branchname] は例えば issue#1 のように書く。変更作業はここで作ったbranch上で行う。

$git branch 

このコマンドでローカルにあるbranch(枝)の状態がわかる。

- checkout

$git chekout [branchname]

これで、[ ]ここに指定した branch に移動することができる。

$git chekout master

これで、 master から離れることができる。

注意:作った branch に移動する時は、先に master から離れる。

- status

$git status

このコマンドを入力することでどのファイルを変更したかがわかる。
また、今どのファイルを $git add しているのか、していないのかも確認できる。
わかるのは、あくまでもファイルで変更内容は確認できない!!
(注意) $git add をする前に必ず確認しよう!!

- diff

$git diff

これをすることで、今まで加えた変更内容がみることができる。
(注意) $git add をする前に必ず確認しよう!!

- add

$git add [filename]

これをすることでリモートに送りたいファイルを指定する。
この状態ではまだリモートに送ることはできない!
このコマンドをする前に必ず status と diff を行い間違いがないか確認する!!

- commit

$git commit -m "[変更点]"

$git add をした後にこれをすることでリモートに送る準備ができる。
[変更点]は加えた点が誰に見られても理解できるものにする!!

- push

$git push origin master

まず origin というのはリモートの一般的な名前のこと。
名前をつけるコマンドで紹介した、 $git remote add origin [SSH]
これによって、変更したファイルを送ることができる。

- merge

$git merge

これをする前に、必ず $git checkout master を行う! 作成した branch 上で行わないように。
これを行うことで、他の人の変更が加わった新しいファイルをリモートから更新することができる。

- pull

$git pull origin master

これによって、更新されたファイルをリモートから持って来て、自分の作業場(ローカル)の環境を更新することができます。
origin はリモート・リポジトリの名前のこと。

まとめ

  • addをする前には必ず、status と diffをして最終確認をする。

  • 小まめに merge することで conflict(衝突)を回避しよう!!
    conflict(衝突)とは他の人と自分の変更点に矛盾が生じたときに起こる問題のこと。

  • 他にも多くのコマンドとアプローチの方法があるため調べてみる!!