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

#2 Git一連の流れ

More than 3 years have passed since last update.

gitの流れを勉強したので一連の流れを書き留めます(また備忘録)。


pushのやり方(ローカル→リモート)

1. git init

好きなディレクトリをGit管理下に置く。まずここから。

$ mkdir <dir>   #←ディレクトリの名前
$ cd <dir>     #initする前に移動
$ git init     #.gitができる(隠してあるので確認時は -al必須)

2. git add

さっき作ったディレクトリにGitにpush(後述)したいファイルを入れた後に、まずindexのステージに渡してあげなきゃなのでaddしてあげる。

$ git add <file>

ちなみに、のところのパラメータに「.」を渡すと全ファイル指定になるので一個一個書かなくて済む。非常に楽。

3. git commit -m "<コメント>"

pushするための最終準備としてcommitで確定してやると準備は完了。

$ git commit -m "first commit" #コメントには備考書いたりする

4. git remote add

リモートリポジトリにローカルで作成したディレクトリとかファイルを共有したいときは、まずリモートに紐付けを行わなければならない。

$ git remote add <name> <url>

name には紐付けたいリモートの名前

url にはそのリモートURL

5. git push

やっとここでpushできる。

$ git push -u <repository> <refspec>

repository にはさっき紐付けたリモートの名前(ちなみにここはoriginって入れても同じ。というかoriginの方がよく使うらしい)

refspec にはローカルからpushしたいbranchを指定する(masterもbranchなのでmasterと書いてももちろん良し)

ここまででリモートにローカルからpushしたディレクトリがある...はず

pullのやり方(リモート→ローカル)

共同で開発する時、職場の他のエンジニアの人もpushしてマージするとローカルのmasterとリモートのmasterに差分(違うところ)が生じる。この時pullでアップデートする必要が出てくる。

git pull

$ git pull <repository> <refspec>

repository にはリモート
refspec には更新したいローカルのmaster

また、この作業をする前にローカルのbranchをmasterに切り替えておかないと更新されないし、コマンドのrefspecにbranch入れちゃうと、masterが古くてbranchが最新になってしまいカオスになる。なので、

$ git checkout master
Switched to branch 'master'
$git pull origin master

みたいにすると良い。
これでローカルのmasterも最新になる。

便利なコマンド

あると便利なコマンド。(というか絶対使う気がする)

git status

ローカルでGit管理下のディレクトリのステージ確認ができる。
かなり便利で、自分がaddしたかとかcommitしたかも確認出来るから漏れなく作業進められる。次するべき作業とかも教えてくれるので僕みたいな初心者にも優しいつくりになっている。

$ git status
On branch master
nothing to commit

例えば、commit直後だとこうなる。nothing to commitと出てるので、もうcommitができていることがわかる。

git branch

今までローカルリポジトリで作ったブランチとその中で今自分がどこで作業しているか(カレントブランチ)の確認ができる。コマンドラインのpwdとかlsみたいなコマンド。

$ git branch
 master
*branch1 #カレントブランチにはこんな感じで記号がつく。
 branch2

git checkout

ブランチの切り替えができる。cdみたいな感覚で使う。

$ git branch
 master
*branch1 
 branch2
$ git checkout master
Switched to branch 'master'
$ git branch
*master
 branch1 
 branch2

完全に自分専用の備忘録になってしまいました...

もっとこうしたほうがいいとか訂正したほうがいいところなどありましたら、ご指摘いただけると嬉しいです。よろしくお願いします!

tkmkwgc
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