Home New Help Edit

Git memo

2011-05-28
Suns & Moon Laboratory
Gitを使ってみようかと思う。

勉強

Pro Git 一番わかりやすいと思う
A Visual Git Reference Gitでわかりづらい所を可視化して説明。わかりやすい。
Learn.GitHub - Rebasing これも可視化
Gitを使いこなすための20のコマンド
Git Reference リファレンス。これもわかりやすい。
Git と GitHub を体験しながら身につける勉強会行ってきた
【翻訳】Gitをボトムアップから理解する むずかしー

イメージ図

こんな風?

Pro Git 日本語版「図1-6. 作業ディレクトリ、ステージング・エリア、Gitディレクトリ」
http://progit.org/book/ja/ch1-3.html
を参考にしました。

A Visual Git Reference そうそう、こういう図が欲しかった。

便利な.gitignore

リポジトリに入れたくないファイルを書いておく。

Git Guiを使う

コマンドラインも良いけど、GUIもね。
「コミット予定に入っていない項目」からファイル選択。「コミット」→「コミット予定する(Ctrl+T)」

msysgitをコマンドラインで使う


git statusすれば、コマンドの例が出てくるのでとりあえずgit statusして、そのメッセージを見るのも有効。

一番最初

git init

現状の確認

git status

ステージ

ステージに追加

git add *.c

ステージから削除

addの取り消し
git rm --cached hello.c

ファイルの削除

ディスク上からファイルを削除し、ファイルの削除をステージング
git rm hello.c

コミット

通常のコミット

インストール直後は文句いわれるかも。その時は指示に従って設定をする。
git commit -m 'initial project version'
-mコマンドラインでコミットメッセージ指定

自動ステージングコミット

git commit -a -m 'added new file'
-aトラッキングしているファイルを自動でステージ(add)する。

コミットをまとめる


最初こんな風だとする。
$ git log --oneline --decorate 28247f5 (HEAD, master) mata wasureta 78a0314 wasureta 399216f initial import
2個まとめる。
git rebase -i HEAD~2
エディタが起動し、こんな風に表示されたりする。
pick 78a0314 wasureta pick 28247f5 mata wasureta
まとめ方その1(squash)
こうして保存・終了すると、エディタが開いてコミットメッセージ編集出来る
pick 78a0314 wasureta s 28247f5 mata wasureta
まとめ方その2(fixup)
こうして保存・終了すると、コミットメッセージはpickのメッセージになる。(エディタ起動しない)
pick 78a0314 wasureta f 28247f5 mata wasureta
fixupした後のログ
$ git log --decorate --oneline e285904 (HEAD, master) wasureta 399216f initial import
3個まとめる。
git rebase -i HEAD~3
こうすると、こんなかんじにエディタ表示されるので
pick xx pick xx pick xx
下の2個をsにして保存終了。
pick xx s xx s xx
もう一回エディタが表示されるので、そこでまとめたコミットログを書く。

失敗した時

git rebase --abort

タグ


タグ一覧

git tag

タグ付け

git tag -a rev1 -m 'revision 1'

状態確認

コミット後はこんな感じ
$ git status # On branch master nothing to commit (working directory clean)

ログ

git log git log --oneline --decorate
--oneline一行表示
--decorateこれを付けないとタグ表示しない...

分岐

ブランチの作成と切り替え

git checkout -b testing
↑はこれと同等
git branch testing git checkout testing

ブランチ切り替え

git branch testing

ブランチの削除

git branch -d testing

取り消し


ワーキングツリーの変更取り消し

git checkout -- <file>

ログの変更

git commit --amend

Clone

アリスとボブのサーバー、git pushをちゃんと理解したい!

cloneする際'--bare'して、xyz.gitという風にしとかないとpush出来ないっぽい。
pullは出来る。

push

pushできない
pushしようと思ったらこんな感じのメッセージが!
receive.denyCurrentBranch
git pushできない - 橋本詳解

clone元でこうする。
git config --add receive.denyCurrentBranch ignore

インストール

最初TortoiseGitいれたけど、やめてgitextensionsにしてみた。

日本語


Git/一人で使ってみる(msysgit編) こちらを参考にしつつ。
nkf,lessを導入してから、profileに以下を追記。nkfに-W付けないと表示出来なかった。
export GIT_PAGER="nkf -W -s | less"

gitextensions

gitextensions

git-cheetah shell extensionはおっかなそうなのでやめた
http://d.hatena.ne.jp/namutaka/20100409/1270786312

bashのみにしてみた。

Checkout as-is,commit as-is にしてみた。

TortoiseGit


インストール参考
実用レベルに達したWindows向けGitクライアント「TortoiseGit」でGitを始めよう

msysgit入れないと動かない。※まんまといれなかった一人です。

最初にコミットしようとすると、設定しろといわれる。
ので、いわれるがままに設定。
$ git config --global user.name "your name" $ git config --global user.email your@example.com

TortoiseGITつかってみて

ステージを使えないとかいろいろあるのだけれど。

利点
欠点
こんな感じ。
Gitの操作はBashでやって、普段はエクスプローラでやれば良いかも。

Home New Help Edit
2012-04-04 20:15:55 32400