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
とすれば変更があったファイル名を確認することができます。
他にもよく使うものが出てきたら更新します。