Gitに限らず、しくみを理解していないとVCSでは取り返しのつかないことになる可能性があり・・・
Git で no branch に commit した時の対処法
SubversionのときはTortoiseSVNが神がかっていてあんまりトラブルもなかったが、そろそろそういうのにも卒業せねばというのと、Win->MacBookに乗り換えたため
2011-02-28
2011-02-23
group by と having
groupIdがあるテーブルがあって、groupIdが3以上のところを調べたいというとき
ってことでしたおわり。
select groupId, count(groupId) from grouptable group by groupId having count(groupId) >= 3要はgroup by と havingくらい覚えとけよこの (゚Д゚)カス!!
ってことでしたおわり。
2011-02-15
git-svnを使った開発中によく使うコマンド
- ローカルに未コミットの変更があるけどgit-svn-dcommitしたい リンクと同じことしか書いてないけど、ぐぐったりブクマしたりすると大変なことになるので自分メモ。 会社のwikiに書いてもいいかもだけど、もうちょっとまとめたほうがいいかなということでwww上に公開するとかよくわからないことをしている。
- branch/tagsにtrunkコミットの一部をマージしたい こことかを参照した。 普通に"git svn branch"でぐぐれば山ほど出てくるのでエントリ化する必要もなさそうなのだけど。
- git checkoutでsvnのbranch(tags)を引っ張る
- masterにcheckoutでもどって、コミットログを確認、cherry-pickしたいcommitNoをコピー
- branch(tags)に戻り、git cherry-pick
- logを確認
- git svn dcommitでsvnのbranch(tags)にコミットする
$ git stash $ git svn dcommit $ git stash apply
$ git checkout -b hoge tags/20110411 Switched to a new branch "hoge" $ git cherry-pick fuga ~cherry-pickのmessage~ $ git svn dcommit※fuga=commit No
2011-02-13
git rebase
GitブログかよというくらいGitのことしか書いていない気がするけど気にすんな (´ー`)シラネーヨ
入門Gitの176ページに競合とかについても書いてあるのだが一応メモ。
競合については本で書いてあることをそのまま書いただけで、まだ試してない。
rebaseが何かかとか以下のコマンドがなにをしているかを書いてあるページはごまんと出てくるであろうので割愛。
競合をすべて解決し、解決結果でインデックスを更新したら
ここに書くよりman git-rebaseを見た方がいろいろ便利かもしれない。
入門Gitの176ページに競合とかについても書いてあるのだが一応メモ。
競合については本で書いてあることをそのまま書いただけで、まだ試してない。
rebaseが何かかとか以下のコマンドがなにをしているかを書いてあるページはごまんと出てくるであろうので割愛。
git checkout branch git rebase masteror
git rebase master branch競合が見つかるとrebaseは一時停止し、競合の解決が可能になります。
競合をすべて解決し、解決結果でインデックスを更新したら
git rebase --continueでrebaseを再開する。
ここに書くよりman git-rebaseを見た方がいろいろ便利かもしれない。
2011-02-05
git svnに関する悩み
git一本に切り替えるかgit-svnで開発を行うか迷っている。
git-svnにバグや面倒な操作がなければgit-svn環境で問題ないのだが、そもそもgitをまだ理解しきれていないのでgit-svnがよう分からず、困っている。
なんかgit branche -aでいっぱいブランチがでてくるのが問題かなとか思ってるんだけど、予想であって根拠は無い。gitをきちんと理解していればこんなことにはならないのに。
(追記)
git svn clone -s https://hoge.com/fuga/svn
とcloneしたらなんかgit svn rebaseできて大丈夫だった。
git svn clone -T trunk(以下略)
という感じでいちいちトランクやブランチを指定していた形でcloneしていたときは失敗してた。
何で解決したかは予測でしかつけられない(面倒くさい)ため略。
man git-svnがいいんじゃないかなと思います。
あ、あと結局暫くgit-svn開発でいくことになりました。
(追記終わり)
また、
git-svnにバグや面倒な操作がなければgit-svn環境で問題ないのだが、そもそもgitをまだ理解しきれていないのでgit-svnがよう分からず、困っている。
$ git svn rebaseが使えればたぶんだいたい問題ないのだが、(なぜなら、gitを使用するのはプログラマだけで、svnを使用するのはブランチ開発などを行わないクリエイターが主になる予定であるため)
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. Use '--' to separate paths from revisions log --no-color --no-decorate --first-parent --pretty=medium HEAD: command returned error: 128とか言われてrebaseできない。
なんかgit branche -aでいっぱいブランチがでてくるのが問題かなとか思ってるんだけど、予想であって根拠は無い。gitをきちんと理解していればこんなことにはならないのに。
(追記)
git svn clone -s https://hoge.com/fuga/svn
とcloneしたらなんかgit svn rebaseできて大丈夫だった。
git svn clone -T trunk(以下略)
という感じでいちいちトランクやブランチを指定していた形でcloneしていたときは失敗してた。
何で解決したかは予測でしかつけられない(面倒くさい)ため略。
man git-svnがいいんじゃないかなと思います。
あ、あと結局暫くgit-svn開発でいくことになりました。
(追記終わり)
また、
$ git svn fetch $ git merge trunkならsvnのcommitを引っ張ってくることはできた。
2011-02-04
gitを使った開発中によく使うコマンド
まだあんま使ってないのだけど、多分これらは有用である
branchでがががと開発しているときmasterの様子が気になる!
tags切っちゃったあとに修正忘れを発見!!でもだいぶコミット進んじゃって、いらないものもあるよ〜。だから、あるコミットだけマージしたいの!!
随時追加予定です。
branchでがががと開発しているときmasterの様子が気になる!
git show origin/master:filename
tags切っちゃったあとに修正忘れを発見!!でもだいぶコミット進んじゃって、いらないものもあるよ〜。だから、あるコミットだけマージしたいの!!
git cherry-pick commit-id
随時追加予定です。
2011-02-03
gitのリポジトリ作成メモ
remote.origin.url=ssh://matsumushico@hoge.com/srv/repos/git/mushico
とすべきところを
remote.origin.url=ssh://hoge.com/srv/repos/git/mushico
とかしてて、しかもそのミスが今回で2回目であり。
備忘録しておかないとまたやりそう。
wikiに
ssh://matsumushico.com/srv/repos/git/mushico
とかってメモってあるから間違えるorz
ぜんぜん情報は足りてないけど備忘録として何度も参考にさせていただいているサイト
せっかちな人のためのgit入門
ちなみにgitじゃなくて正確にはGitらしいです。
とすべきところを
remote.origin.url=ssh://hoge.com/srv/repos/git/mushico
とかしてて、しかもそのミスが今回で2回目であり。
Permission denied (publickey). fatal: The remote end hung up unexpectedlyと言われまくった。
備忘録しておかないとまたやりそう。
wikiに
ssh://matsumushico.com/srv/repos/git/mushico
とかってメモってあるから間違えるorz
ぜんぜん情報は足りてないけど備忘録として何度も参考にさせていただいているサイト
せっかちな人のためのgit入門
ちなみにgitじゃなくて正確にはGitらしいです。
2011-02-01
screenコマンドのつかいかた
ちょっとmacではcrtlキーどれだよってなってダメだったんですが、会社のサーバ(Debian)では実行できた。
参考にしたサイト
ssh でサーバにログイン
screen
^a c 新規ウインドウ(仮想端末)を作成する
^a p 前のウインドウをアクティブにする
^a n 次のウインドウをアクティブにする
(^はctrlキー)
screenで作成されたシェルで実行したコマンドはterminalを閉じても実行されていた。
・・・という感じで使うのだと思う。
----------------キリトリ-----------------
とりあえず作業(実行に時間のかかるスクリプトを走らせる)さえ実行さえできてしまえばscreenコマンドはほぼ滅多に使わないと思う。
参考にしたサイト
ssh でサーバにログイン
screen
^a c 新規ウインドウ(仮想端末)を作成する
^a p 前のウインドウをアクティブにする
^a n 次のウインドウをアクティブにする
(^はctrlキー)
screenで作成されたシェルで実行したコマンドはterminalを閉じても実行されていた。
・・・という感じで使うのだと思う。
----------------キリトリ-----------------
とりあえず作業(実行に時間のかかるスクリプトを走らせる)さえ実行さえできてしまえばscreenコマンドはほぼ滅多に使わないと思う。
gitのコマンドまとめ
基本的なコマンドしか書いてません。
作業ファイルの内容が最新のものかどうかのチェックを無効にします。
ところでsyntaxhighlighterの使い方がいまいち分からなくてclass="c"とかでごまかしてしまった。
う、うーん・・・。
- configを確認
$ git config --lもしくは
$ cat .git/config
- name等設定
$ git config --global user.name "hoge fuga" $ git config --global user.email "boo@bar.com"
- 削除
$ git config --global --unset user.name
- ハッシュ値とファイルの関連をみる?
$ git ls-files -s
- git rm
$ git rm --cached filename//ファイルをインデックスから削除 $ git rm filename//ファイルをインデックスと作業ディレクトリから削除ただし、git rm --cachedはファイルが追跡されなくなったことを忘れてしまう危険がある。
作業ファイルの内容が最新のものかどうかのチェックを無効にします。
- 間違って消しちゃった
$ git checkout HEAD -- filename
- git 便利リンク
ところでsyntaxhighlighterの使い方がいまいち分からなくてclass="c"とかでごまかしてしまった。
う、うーん・・・。
Pythonのよく使う関数まとめ
Pythonをかく機会が増えたけれども基本Javaがメインである上にEclipseを使用しているのでいつまでもAPIを覚えない自分は死ねばいいのだけども、覚えられないためにぐぐりながらPythonを書くのにもストレスしか感じなくなったのでメモを作成することにする。
ただのメモなので詳しい使用方法はかきません。色々したくなったらぐぐればいい。
findはbooleanでなくindexが返ってくる。よく間違える。
このエントリに随時追加していく。
ただのメモなので詳しい使用方法はかきません。色々したくなったらぐぐればいい。
- fileの文字を読み込んで操作する系
f=open('file.txt') for line in f: line = line.rstrip() if line.startswith('hoge'): print lineopenは'w'とかオプションがある。
findはbooleanでなくindexが返ってくる。よく間違える。
- memcache
impoert memcache mc=memcache.Client(['localhost:11211']) mc.get('hoge')Tokyo Tyrant's default port is 1978
このエントリに随時追加していく。
登録:
投稿 (Atom)