LoginSignup
5
5

More than 5 years have passed since last update.

よく使うgitコマンド

Last updated at Posted at 2015-07-02

開発スタート

branch作成

  • masterから開発用のbranchを作成するのであれば、masterにチェックアウトします。0
git checkout master

branch作成時の困りもの

  • 自分がいるbranchがどこだかわからなくなります。
$ git branch
 201506hoge
 201507hoge
*201508renewalSites
 master

201508renewalSitesにいることがわかります。

  • 同じrepositoryで複数開発をしている場合、masterにチェックアウト出来ない場合があります。
$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
hoge.php
hogehoge.php
Please, commit your changes or stash them before you can switch branches.
error: The following untracked working tree files would be overwritten by checkout:
hoge.php
Please move or remove them before you can switch branches.
Aborting
  • 指示に従って、commitするかstashで変更を隠してしまいます。stashの場合は
$ git stash save hogeStashName  
Saved working directory and index state On 201508renewalSites: hogeStashName 
HEAD is now at xxxxxxx ID defined

その後、問題なくmasterにチェックアウト出来るようになります。

いろいろなbranch作成

  • -bのオプションを付けることで、branchを新規作成しチェックアウトすることになります。
git checkout -b localNewBranch
  • 既にリモートに開発用branchが作られているのであればチェックアウト元を指定します。
it checkout -b localNewBranch origin/remoteBranch
  • remoteBranchが無いよ、と言われるときがあります。
$ git checkout -b fuga origin/remoteBranch
fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'origin/remoteBranch' which can not be resolved as commit?
  • ローカルにremoteBranchの情報が無いためとなります。-aオプションを付けてあげる事によって、ローカルとリモートのbranchリストが表示されます。
$ git branch -a
 201506hoge
 201507hoge
 *201508renewalSites
 master 
 remotes/origin/201506hoge
 remotes/origin/201505DBReset
 remotes/origin/201507hoge
 remotes/origin/201508renewalSites
 remotes/origin/master
  • そのような場合はfetchを実施します。
$ git fetch
 remote: Counting objects: xx, done.
 remote: Compressing objects: 100% (2/2), done.
  remote: Total 2 (delta 0), reused 0 (delta 0)
  Unpacking objects: 100% (2/2), done.
  From /path/to/repository
  *[new branch]      remoteBranch       -> origin/remoteBranch
  • remoteBranchの情報が表示されるようになりました。これでリモートにある開発用branchからbranchを作成することが出来ます。
 $ git branch -a
 201506hoge
 201507hoge
*201508renewalSites
 master 
 remotes/origin/201506hoge
 remotes/origin/201505DBReset
 remotes/origin/201507hoge
 remotes/origin/201508renewalSites
 remotes/origin/master
 remotes/origin/remoteBranch

ファイルを修正したり作成したら

gitにトラッキングしてもらいます

  • gitにファイルを監視してもらうために、addします。
$ git add hogehoge.php

いろいろなgit add

  • addするファイルが多い場合、*(アスタリスク)が使えます。 phpファイルを追加しています。
 $ git add *.php
  • ディレクトリごと追加も出来ます。
 $ git add /home/hoge/website/hogehoge/

開発が一区切り着いたら

commit します。

  • commtiします。
 git commit --author="hoge fuga <niwa@hogehoge.me>"
  • コマンド実行後、commitMessage編集のテキストファイルが開かれるので、適宜コメントを残します。

開発が終了したら

push します。

  • pushします。
git push origin HEAD

とにかくリモートと一緒にしたいとき…。

resetします。

  • リモートのmasterと一緒にしたいけれど、いろいろ面倒なのでえいやっとリモートと一緒にしたいときは
$ git reset --hard origin/master

--hardのオプションを付けることでcommitしていない作業中のファイルはすべてmasterと同じになります。あぁ、すっきり。

  • リモートのbranchと一緒にしたいけれど、いろいろ面倒なのでえいやっとリモートと一緒にしたいときは、resetの基準をmasterでは無く任意のbranchにします。あぁ、すっきり。
git reset --hard origin/remoteBranch

最後に

まだgitを使い始めて2ヶ月なので、説明不足な点は多々あると思います。下記のような環境ですので、いろいろ困ったことが多いです。少しずつ情報を書いていこうと思っています。

  • github
  • テスト環境
    • ec2上のCentOS 6
  • ローカル環境
    • windows7でのvagrantとvirtual boxによる仮想環境
    • cygwin
    • git クライアント tortoise
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5