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

【初心者向け】開発の時によく使うgitコマンド

Gitコマンドの忘備録

git add

作業ディレクトリ(皆さんのパソコン)で変更したファイルをステージング環境にあげる

全部ファイルを上げたいときは

$ git add .

とする

ファイルを指定して上げたいときは

$ git add hoge.html

のようにファイル名を指定する。

Railsのプロジェクトとかだとこんな感じ。

$ git add app/views/admin/index.html

git commit

ステージングに上がったファイルをgitリポジトリに保存する

$ git commit -m "commit_message" 

コミットメッセージはできるだけわかりやすく書いた方がいい。適当でもコミットはできるが、あとで見直した時に困る時があるので。

ちなみに、間違えてコミットメッセージを打ち間違えてしまった時には

$ git commit --amend -m "hogehoge"

とするとコミットメッセージを(上記の例の場合)"hogehoge"と変えることができる。

git push

コミットした内容をリモートサーバーへ送信する。

これで晴れて、リモートリポジトリ上に変更を反映できます。

$ git push origin branch_name

このようにしてpushをします。

$ git push origin master

とするとmasterブランチ(大元のブランチ)に変更内容を反映することになります。

個人開発ならばmasterにpushすることはあるかもしれませんが、通常チーム開発ではブランチを切ることがほとんどなので

$ git push origin branch_name

のように書くことがほとんどでしょう。

さて、上記の3つで「変更の内容をリモートリポジトリに反映する」ということはできるようになりました。

もう少しその周りで知識として必要になることがあるのでみていきましょう。

git checkout

これについてはいくつか使用用途があるので、
・新しいブランチを作る
・別のブランチから特定のファイルを取ってくる
・ブランチを切り替える
・ファイルの変更をなかったことにする

といったよく使う方法について書きたいと思います。

新しいブランチを作る

$ git checkout -b branch_name

として新しくブランチを切ります。これで、その新しく作ったブランチに移動してくれるので便利です。

ちょっとした応用例として

$ git checkout -b hogehoge origin/fugafuga

とすると、
・hogehogeというブランチを作成
・すでにリモート上に上がっているfugafugaというブランチ名の内容を全て取ってくる
・そしてその内容をhogehogeブランチに取り込む

ということができます。(すごい便利だ・・・)

誰かの開発を引き継いだりする時に使ったりします。

別のブランチから特定のファイルを取ってくる
自分が開発するブランチには今はないけど、他の人が開発しているブランチにある機能があって、それを取り込んだ上で開発したい、といったようなケースです。

そんな時は

$ git checkout target_branch_name file_name

のようにするとファイルを取ってこれます。

少しわかりにくいので具体的な例を出しますと

今いるブランチの中に、dev_hogeというブランチの中にあるapp/views/admin/index.htmlというファイルを取ってきたい、という状況である時には

$ git checkout dev_hoge app/views/admin/index.html

とします。
注意しなくてはいけないのは、「今いる」ブランチにそのファイルの内容が取り込まれるので、事前にどのブランチにいるかを確認した上でやりましょう。

ブランチを切り替える
文字通り今いるブランチから別のブランチに移動して作業をしたいケースの時に使います

$ git checkout target_branch

ファイルの変更をなかったことにする
別ブランチで変更するべきファイルを、間違えて今のブランチで変更してしまった!などといったミスもあったりするので、変更した内容を元に戻すこともできます。

$ git checkout .

これで、ローカルでの変更をなかったことにできます。
ただ、これだと全てのファイルに対して変更がなかったことにされてしまうので、ファイルを指定して行いたい場合は

git checkout app/views/admin/index.html

のようにファイル名を指定します。

git branch

今あるブランチを出してくれます

$ git branch

これでローカルの方のブランチを表示してくれます。

リモートリポジトリのブランチをみたい場合は

$ git branch -r

とします。
どっちもみたい場合は

$ git branch -a

とします。

git diff

変更した内容の差分を見ることができます。

$ git diff

が基本となります。

$ git diff HEAD

で最新コミットと作業ツリーの差分を表示することができます。

また、変更したファイル名の確認をする場合は

$ git diff --name-only

とすれば変更があったファイル名を確認することができます。

他にもよく使うものが出てきたら更新します。

Why do not you register as a user and use Qiita more conveniently?
  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
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