Pebble's Diary

プログラマーの作業メモ

gitコマンドまとめ

やっとgitにも慣れてきたところなので、 まとめておきたいと思う。

といってもgitはsubversionに比べて覚えることが多く、学習コストが高い。

はっきりいって不要なコマンドが山ほどある。

最低限、これだけあれば事足りるという内容にしたいと思う。

subversionを知らない人の方がgitの概念はすんなり理解できるらしい。

基本的な概念は他の入門サイトで知っていることを前提とする。

あと基本的なことだけどgitはsubversionのように全てのディレクトリに.svn ディレクトリを作ったりはせず、git initを実行したディレクトリに .gitディレクトリを作成し、情報は全てそこに蓄積される。

コマンド使用頻度順に並べてみた。

なお{}でくくられた部分は任意の文字列を表す。

1) git status

ファイルの変更状況を確認する。 私はgit stにエイリアスしてある。

また、文字に色がつくように設定してある。

ここで3つのエリアに分かれて表示される。

下はトラックされていないと呼ばれるエリア。

真ん中はアンステージされたとか作業ツリー(working tree)だとか呼ばれるエリア。

上はステージされたあるいはキャッシュされたとか呼ばれるエリア。

真ん中と上はトラックされたエリアとも呼ばれる。

2) gitk --all

履歴のツリーとブランチ、タグの位置を確認する。

3) git commit -m {comment}

キャッシュ(=ステージされた)された内容(一番上のエリアにある)をコミットする。

コメントは入力必須だ。

4) git add -A [{filename}]

git statusで表示されているファイル、ディレクトリを全てステージされた状態にする。 5) git rm {filename}

ファイルを削除する。

6) git add {filename}

ファイルを追加する。

7) git branch

ブランチ名を一覧表示する。

8) git clone {git repo name}

外部のgitリポジトリからローカルのgitリポジトリを作成する。

9) git checkout {branch}

ブランチを切り替える。

10) git branch {new branch}

現在のブランチから新しいブランチを作成する。

コマンドを実行した状態では元と新しいブランチは同一状態であり、 gitk --allでみると同じ位置を指していると思う。

11) git tag

タグを付けたり外したりする。

いろいろなオプションがある。

リリース作業する場合(人に渡す場合)、必ず付ける。

コミット番号打つのめんどいから目印として付けることもある。

12) git checkout -b {newbranch} {branch|tag|commit}

特定の位置にブランチを作成する。

13) git branch -m {oldbranch} {newbranch}

既存のブランチ名をリネームする。

14) git rebase {branchname}

他のブランチの内容を自分のブランチに反映するコマンドのうちの一つ。

私は一人で開発しているのでマージよりrebaseをよく使う。

15) git checkout --

これよく使うんだけど、ヘルプにも意味書いてない謎コマンド。 誰か説明して。

16) git reset HEAD^

最後のコミットをなかったことにして作業ツリーに戻す。 私はstashを使わないので、とりあえず、作業途中でも git add -Aして、git commit -m "work"としてコミットを作ることにしている。

スタッシュだとどこからスタッシュしたか覚えていられないからね。

戻ってきてからgit reset HEAD^して、作業を継続するという方法に 今は落ち着いてる。 とりあえず上記だけ覚えれば、作業はできるかなあ。

以下、上級編。

17) git svn clone {subversion repo name}

外部のsubversionリポジトリからローカルのgitリポジトリを作成する。

18) git svn dcommit git

リポジトリの内容をsubversionにコミットする。

19) git merge

他のブランチの内容を自分のブランチに反映するコマンドのうちの一つ。

20) git init

空のgitリポジトリを作るコマンド。

21) git remote add

あとからリモートブランチを追加する。

22) git remote update

リモートブランチの内容をリモートから持ってきて更新する。

このコマンドの説明が書いてないgit解説本が多いよねえ。 すごく重要なコマンド。

23) git branch -r

リモートブランチのリストを表示する。

24) git push

ローカルのgitコミットの内容をリモートのgitに反映する。

とりあえず、ざっと書いてみたけど、 いろいろ間違ってたり、不足してたりしそうなので、 気がついたら更新する予定。