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'
自動ステージングコミット
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の様々な機能が使い辛い気がする
- アイコン表示が、git statusとずれる時がある。
こんな感じ。
Gitの操作はBashでやって、普段はエクスプローラでやれば良いかも。
2012-04-04 20:15:55 32400