• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

git-pullで私なりの解釈で aha!が来たのでメモします。
これからは git-pull --rebaseにしよー
下記をそのままという感じなのですがw
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html#using-git-rebase

###そういえばトッポさんが言ってた:git-pull --rebaseを使うといいよ
git-pullよりgit-pull --rebaseを使うといいよ(ただしという注意(下記太字)があるのでその辺は注意。ほとんどの人は関係ないと思うんだけど。。。)

Here's a tip for keeping up to date: In lieu of using git pull to download the latest changes, use git pull --rebase. Instead of cluttering the history with a merge commit, it reapplies your changes to the latest upstream. The only caveat is that you shouldn't use this method if you've already published the changes to another repository. Doing so would cause problems for anyone who has already downloaded the original commits.
http://www.tpope.net/rails-git-best-practices

でgit-pullとgit-pull --rebaseの違いをgit-rebaseの説明を読んで理解する

###状況
o--o--O--o--o--o <-- origin
         \
         a--b--c <-- mywork

"mywork"は"origin" から単純に並行に行なわれています
プロジェクトの上流では他の興味深い変更が行なわれ、 "origin" は発展します

###で、(上の状況から)git-pullした場合
o--o--O--o--o--o <-- origin
         \          \
         a--b--c--m <-- mywork

"pull" を使用して変更をマージさせることができます;結果として新しいマージコミットが生成されます

###で、(上の状況から)git-pull --rebaseした場合
originが最新であればgit rebase originでいいと思うのだけど、(originが)最新でない場合はgit-pull --rebaseすればいいのだと解釈しました。

o--o--O--o--o--o <-- origin
                      \
                      a'--b'--c' <-- mywork

これは、mywork からあなたの各コミットを削除し、一時的に (".dotest" という名前のディレクトリ内に)パッチとして保存し、 mywork を origin の最新バージョンの位置に更新し、その後で保存した各パッチを新しい mywork ブランチに適用します。

コンフリクトがある場合は、下記にあるように修正してaddしてgit rebase --continueすればok。

###各git-somethingでのコンフリクト時のリカバリ

  • git merge 時のリカバリ
      o 手動マージ -> 動作確認 -> add -> commit  
  • git rebase 時のリカバリ
      o 手動マージ -> add -> git rebase --continue  
  • git pull 時のリカバリ
      o メンテナの場合 -> 一蹴  
      o ユーザの場合 -> 手動マージ -> add -> commit  
  • git-am 時のリカバリ ( apply mail = メールで送られるパッチの適用 )
      o メンテナの場合 -> 一蹴    
      o ユーザの場合 -> 手動マージ -> add -> git-am --resolved  

http://d.hatena.ne.jp/conceal-rs/20080928/1222612534

###Refs
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html#using-git-rebase
http://www.tpope.net/rails-git-best-practices
http://blog.s21g.com/articles/535:tpope.netさんのRails with Gitのためのベストプラクティス
http://d.hatena.ne.jp/conceal-rs/20080928/1222612534:gitでの開発の流れがわかってかなり++

posted by satoko satoko on Fri 3 Oct 2008 at 17:44 with 0 comments

自分用メモ。
screenでは複数windowを開いていますが、最近なんとなく開く数が決まってきたので、最初から開いておくようにしました。瀧内さんは以前8つ開いてるって言ってたので(!)、私の6つなんか かわいいものなハズ。

###windowの役割
現在のメインプロジェクトはブログなので、それをベースに以下の5つを開いています。

  • 0 emacs, エディタ
  • 1 shell
  • 2 tail -f log/development.log
  • 3 script/console
  • 4 同時進行のプロジェクト: folked prawn.git
  • 5 railsのdir ソースを読むのに使う

###2008.10.03の.screenrc
他の人よりはショボショボなのですが、ご愛敬ということで。
emacsclientを使っているので、emacsはフルパスで書いています。

rails>>
escape ^tt

hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"
scrollback 4000
vbell off
#idle 1200
#blankerprg /usr/local/bin/tss

chdir "/home/hibi/blog.git" #メインのprojectに移動

#screen -t emacs 0 /usr/bin/emacs #emacs 21.4
screen -t emacs 0 /usr/local/bin/emacs
screen -t bash 1
stuff "ruby ./script/server -d" #開いたwindowにこのコマンドだけ入力しとく、実行してもいいのですが実行したくない時も多いので

screen -t tail 2 tail -f log/development.log

screen -t console 3 ruby ./script/console

chdir "/home/hibi/my.prawn.git"
screen -t prawn 4 #前の行でcdしてからwindowを開く

chdir "/home/hibi/test/vendor/rails/actionpack/lib/action_controller"
screen -t rails 5

chdir "/home/hibi/blog.git" #以後開くすべてのwindowをblog.gitにするため
select 1 #window1を選択
<<--

###Refs
http://www.limy.org/program/screen_command.html:日本語リファレンス
http://www.pervasivecode.com/blog/2007/06/12/gnu-screen-and-my-screenrc/
http://technique.sonots.com/?UNIX/設定、設定ファイル/.screenrc

posted by satoko satoko on Fri 3 Oct 2008 at 15:48 with 0 comments
Contents rssrss
NSAssertやNSLogを無効にする:-DNS_BLOCK_ASSERTIONS=1とNS_BLOCK_ASSERTIONS
GDBでview.frameを表示させる
Core Animationについてのリンク集
[iPhone] new BSDライセンスについてライセンス引用のメモ
Implementing a Container View Controller in UIViewController Class Reference
UITableView用のNSIndexPathの作り方
Xcodeのテンプレート、View-based ApplicationとWindow-based Applicationの違い
CopyOnSelectのLion対応
Xcode4のCode Snippetsを別のPCに移動する+gitで管理する
[iPhone] Singleton: iOS4以降はGCDのdispatch_onceを使う
Tags
gitscreen
Comments rssrss
KingofSmack KingofSmack: Here also good reads for this mobile application d... 05/10 18:02
satoko satoko: stackoverflowでも同じエラーを挙げている人がいたので、1.3でアップロードしたよってコメ... 12/13 03:36
ujihisa ujihisa: :%s/blog/glob/g 07/28 16:41
satoko satoko: しゅが〜様 返事が遅くなって申し訳ありません。また、投稿百景ご購入ありがとうございます。 『po... 10/11 14:05
しゅが~ しゅが~: こんにちは。投稿百景を発売日翌日から利用しています。本当にいいAppを作っていただきました。罫線絵文... 10/08 00:38
satoko satoko: 情報ありがとうございます!コミットを再利用するの部分、文章が不明瞭ですね。ちょっと修正します。教えて... 09/25 14:32
ono ono: 後で確認したら、ファイルの除外はamendではできないですね、失礼しました。alias は、'-C ... 09/25 10:47
satoko satoko: ぉぉ了解です。ありがとうございます〜 モヤが消えました! 03/13 16:31