個人的gitコマンドのメモ

ずっとSourceTree使ってたんだけど、いちいちGUI開くのめんどいのでそろそろCUIで使えるようになりたいって感じです

とりあえずSourceTreeでやってたことのコマンドをメモっておく

例として下記のディレクトリ構成を想定する

$ tree .
.
├── dir1
│   ├── dir1-1
│   │   ├── hoge.txt
│   │   └── huga.py
│   ├── dir1-2
│   │   ├── hoge.txt
│   │   └── huga.py
│   ├── hoge.txt
│   └── huga.py
├── dir2
│   ├── dir2-1
│   │   ├── hoge.txt
│   │   └── huga.py
│   ├── dir2-2
│   │   ├── hoge.txt
│   │   └── huga.py
│   ├── hoge.txt
│   └── huga.py
├── hoge.txt
└── huga.py

gitの設定を確認する

$ git config -l

# user.name,user.email,core.editor,color.uiを確認したかったら"-l"なしでやればいい
$ git config user.name

ローカルリポジトリを作る

$ mkdir hoge
$ cd hoge
$ git init

ステージングにのってるか確認する

$ git status

ファイルをステージングに登録する

# カレントディレクトリ以下すべてを指定する
$ git add *
$ git add .   # または
$ git status
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   dir1/dir1-1/hoge.txt
    new file:   dir1/dir1-1/huga.py
    new file:   dir1/dir1-2/hoge.txt
    new file:   dir1/dir1-2/huga.py
    new file:   dir1/hoge.txt
    new file:   dir1/huga.py
    new file:   dir2/dir2-1/hoge.txt
    new file:   dir2/dir2-1/huga.py
    new file:   dir2/dir2-2/hoge.txt
    new file:   dir2/dir2-2/huga.py
    new file:   dir2/hoge.txt
    new file:   dir2/huga.py
    new file:   hoge.txt
    new file:   huga.py

# 特定ディレクトリ以下すべてを指定する
$ git add dir1
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   dir1/dir1-1/hoge.txt
    new file:   dir1/dir1-1/huga.py
    new file:   dir1/dir1-2/hoge.txt
    new file:   dir1/dir1-2/huga.py
    new file:   dir1/hoge.txt
    new file:   dir1/huga.py

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    dir2/
    hoge.txt
    huga.py

ステージングに乗っているファイルをコミットする

$ git add dir1
$ git commit -m "initial commit"

ローカルでコミットした内容をリモートリポジトリへプッシュする

$ git push origin master

リモートリポジトリの内容をプルする

$ git pull

ローカルの変更を破棄する

$ git checkout hoge

プッシュ前のコミットメッセージを修正する

$ git commit --amend -m

8/21 追加 そのうちちゃんと整理する

// ブランチを作って切り替え
$ git checkout -b hoge
// ブランチを作るだけ
$ git branch hoge
// ブランチを切り替える
$ git checkout hoge
// ブランチのリネーム
$ git branch -m hogehoge
// ブランチのプッシュ
$ git push origin hogehoge
// 作業ブランチをブランチからマスターに切り替える
$ git checkout master
// 今いるリポジトリがどのURLからcloneしたか確認する
$ git remote -v