Help us understand the problem. What is going on with this article?

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上で行う。
[branchname] の例では, 追加したい機能の名前など.
(例) ボタン機能を追加したい → [add_button_function]
みたいな感じ. 記法(命名法 or 書き方)は開発メンバーで揃えましょう.

$git branch 

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

- checkout

$git checkout [branchname]

これで、[ ]ここに指定した branch に移動することができる。
注意:⬇️に書いてることはやってること同じなので深く考えないように.よくわからなかったらスルー.

$git checkout [リモートの移動したいbranchname]

リモートにあるbranchに checkout するとそのbranchをローカルコピーする(引っ張ってくる)ことができる.

$git checkout .

これで、 現在の branch の変更内容を全て消去できる.

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

- status

$git status

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

- diff

$git diff

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

- add

$git add [filename]

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

$git add .

これで, 現在のbranchで行なった変更全てを add する.

- commit

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

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

- push

$git push origin master

まず origin というのはリモートの一般的な名前のこと。
接続するRemote環境(一本の木)を設定するコマンドで紹介した、 $git remote add origin [SSH]originのこと!
これによって、変更したファイルを送ることができる。

- merge

$git merge

merge(合流, 統合)という意味.
これをする前に、必ず $git checkout master を行う! 作成した branch 上で行わないように。
これを行うことで、他の人の変更をorigin(リモート)から引っ張ってきて統合することができる。

- pull

$git pull origin master

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

$git pull origin [branchname]

実際には⬆︎の意味で捉えられます.
これは, このコマンドを打った時にいるbranchに対して, orgin(リモート)上にある[branchname]で指定したbranch現在いるbranchに統合(merge)することを意味しています.
難しかったらスルーで構いません.
[追加: 2019/6/13]

まとめ

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

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

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

振り返り

この記事を書いてから1年が経ちました.
今振り返ってみると, 無茶苦茶なこと書いてるな!? と思う箇所もありましたが, Gitを初めて勉強した時は「なにいってるんだこいつ?」 と思いながら学びました.
わかる人が読めば, 「なんだ? この説明は.」と思う箇所もあると思います.
(僕も久々に読んで思いました笑)
しかしこの記事は, わからなくて四苦八苦している自分が書いたものなので, 同じく苦しんでいる人には案外この説明がわかりやすのかもしれません.
なので, あまり書き方・説明方法を変更するつもりはありません.
と言いつつ少し説明を追加したりしたのですが...
この記事が誰かの理解の一助になれば嬉しいです.

Narinii
C#を勉強しています。インターンでUnityを使ったアプリ開発中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした