<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/">

  <channel rdf:about="http://unknownplace.org/memo/">
    <title>unknownplace.org - Tags: git</title>
    <description>powered by CLON 0.2</description>
    <link>http://unknownplace.org/memo/</link>
    <dc:language>ja</dc:language>
    <dc:creator>typester</dc:creator>    <dc:date>2008-07-23T15:39:00+09:00</dc:date>
    <admin:generatorAgent rdf:resource="http://unknownplace.org/apps/clon?v=0.2" />

    <items>
      <rdf:Seq>
	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/07/23#e003" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/04/29#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/04/28#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/04/04#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/02/20#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/02/19#e003" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/02/19#e002" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/02/19#e001" />
       </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="http://unknownplace.org/memo/2008/07/23#e003">
    <title>15:39  master にコミットしちゃったのが微妙だけど branch に保存して残しておきたいとき</title>
    <description />
    <link>http://unknownplace.org/memo/2008/07/23#e003</link>
    <content:encoded><![CDATA[<blockquote>
  <p><a href="http://subtech.g.hatena.ne.jp/secondlife/20080722/1216713334">master にコミットしちゃったのが微妙だけど branch に保存して残しておきたいとき - 8時40分が超えられない - subtech</a></p>
  
  <p>これ便利だなー branch 切らずに master に直接いれちゃえいう時が良くありますね(ブランチ切れよ)。んであとから見直したら微妙だはずしたい、というとき。push してなければ</p>

<pre><code>git branch bimyou_branch
git reset --hard modositai_tokorono_sha1
</code></pre>
  
  <p>だけで master は元に戻るし、branch には残ってるしでばっちり。git おてがるー。(こまめにブランチは切りましょう)</p>
</blockquote>

<p>いいね！ git++</p>

<p>ただ「<strong>pushしてなければ</strong>」っていうのを見逃してかわいそうなことになる人がいるかもしれないので強調しておく。push しちゃってたらやっちゃだめよ！</p>
]]></content:encoded>
    <dc:subject>git</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-07-23T15:39:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/04/29#e001">
    <title>00:25 </title>
    <description />
    <link>http://unknownplace.org/memo/2008/04/29#e001</link>
    <content:encoded><![CDATA[<p>つーか、guidesにあるじゃねーか！！！</p>

<p>secondlife-- (と人のせいにする)</p>

<blockquote>
  <p><a href="http://github.com/guides/remove-a-remote-branch">Remove a remote branch &mdash; Git Guides &mdash; GitHub</a></p>
</blockquote>
]]></content:encoded>
    <dc:subject>git</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-04-29T00:25:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/04/28#e001">
    <title>23:33  remote branch を削除する方法</title>
    <description />
    <link>http://unknownplace.org/memo/2008/04/28#e001</link>
    <content:encoded><![CDATA[<p>忘れないうちにメモ</p>

<pre><code> ~/dev/git/test (master)
$ git checkout -b testbranch
Switched to a new branch "testbranch"

 ~/dev/git/test (testbranch)
$ vim test.txt

 ~/dev/git/test (testbranch)
$ git commit -a
Waiting for Emacs...
Created commit 7dea716: modified test.txt
 1 files changed, 1 insertions(+), 0 deletions(-)

 ~/dev/git/test (testbranch)
$ git push origin testbranch
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 267 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
refs/heads/testbranch: 0000000000000000000000000000000000000000 -&gt; 7dea716ff6f4984c3d0256d09279e9d954af3dc4
To git@github.com:typester/test.git
 * [new branch]      testbranch -&gt; testbranch

 ~/dev/git/test (testbranch)
$ git checkout master
Switched to branch "master"

 ~/dev/git/test (master)
$ git branch -D testbranch
Deleted branch testbranch.

 ~/dev/git/test (master)
$ git push origin :heads/testbranch
refs/heads/testbranch: 7dea716ff6f4984c3d0256d09279e9d954af3dc4 -&gt; deleted
To git@github.com:typester/test.git
 - [deleted]         testbranch
</code></pre>
]]></content:encoded>
    <dc:subject>git</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-04-28T23:33:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/04/04#e001">
    <title>17:18  vc-annotate</title>
    <description />
    <link>http://unknownplace.org/memo/2008/04/04#e001</link>
    <content:encoded><![CDATA[<blockquote>
  <p><a href="http://d.hatena.ne.jp/naoya/20080404/1207294998">Emacs の vc-annotate - naoyaのはてなダイアリー</a></p>
</blockquote>

<p>そういえば設定したなとおもっておもむろに <code>M-x vc-annotate</code> してみたら git でもできた！</p>

<p><a href="http://www.flickr.com/photos/typester/2386414551/" title="Untitled by typester, on Flickr"><img src="http://farm3.static.flickr.com/2265/2386414551_150b942f0f_o.png" width="820" height="562" alt="untitled" /></a></p>

<p>設定はこんなんで</p>

<blockquote>
  <p><a href="http://svn.coderepos.org/share/dotfiles/emacs/typester/.emacs.d/conf/50_git.el">http://svn.coderepos.org/share/dotfiles/emacs/typester/.emacs.d/conf/50_git.el</a></p>
</blockquote>

<p>elファイルはgit自体についてくる。</p>
]]></content:encoded>
    <dc:subject>emacs, git</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-04-04T17:18:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/02/20#e001">
    <title>02:19  fast-forward merge</title>
    <description />
    <link>http://unknownplace.org/memo/2008/02/20#e001</link>
    <content:encoded><![CDATA[<p>は git-svn なブランチ上では予期せぬ動作になるので使用しない方がいいっぽい。</p>

<p>新しいコミット発生しないので git svn dcommit できなくなる。</p>
]]></content:encoded>
    <dc:subject>git</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-02-20T02:19:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/02/19#e003">
    <title>22:56  git-svn 作業フロー</title>
    <description />
    <link>http://unknownplace.org/memo/2008/02/19#e003</link>
    <content:encoded><![CDATA[<p>plagger レポジトリで作業するとする。svkとの比較つき。</p>

<h4>まず git レポジトリ作成</h4>

<pre><code>git svn init -s http://svn.bulknews.net/repos/plagger/ plagger
</code></pre>

<p>これで、plaggerってディレクトリにgitレポジトリができる。svk mirror的なものですね</p>

<h4>次にsvnとデータをsyncさせる。</h4>

<pre><code>cd plagger
git svn fetch
</code></pre>

<p>これは svk sync 的なもので対象の変更をすべてtrackしてmerge情報とかを記録する。なので重い。体感では svk sync 以上。</p>

<p>ちなみに最初の init の代わりに clone とすると一気に fetch までしてくれる。</p>

<h4>trunk で作業するよ (ここからが通常のワークフロー)</h4>

<pre><code>git checkout trunk
</code></pre>

<p>で trunk に移動。</p>

<p>svn が変更されてるかもしれないので</p>

<pre><code>git svn rebase
</code></pre>

<p>でチェック。(svk pull 的なもの)</p>

<p>いろいろ編集後</p>

<pre><code>git commit -a
</code></pre>

<p>で git レポジトリにコミット。この時点ではローカルの git レポジトリにしか反映されてない。</p>

<p>svn に反映させるには</p>

<pre><code>git svn dcommit
</code></pre>

<p>とする。これが svk push 的なもの。</p>

<p>ここまでが一応 co から ci までの流れ。</p>

<p>もう少し例。</p>

<h4>fastladder-crawler ブランチで作業してみる</h4>

<p>ブランチに移動</p>

<pre><code>git checkout fastladder-crawler
</code></pre>

<p>いろいろ変更後コミット</p>

<pre><code>git commit -a
</code></pre>

<h4>このブランチをtrunkにマージしよう</h4>

<p>まずtrunkに移動して</p>

<pre><code>git checkout trunk
</code></pre>

<p>マージ</p>

<pre><code>git merge fastladder-crawler
</code></pre>

<p>これだけ。すばらしく簡単。</p>

<h4>ローカルブランチを作って作業も簡単</h4>

<p>まずtrunkのローカルブランチをつくる。まずtrunkへ移動</p>

<pre><code>git checkout trunk
</code></pre>

<p>test という名前のブランチ作成してそこに移動</p>

<pre><code>git branch test
git checkout test
</code></pre>

<p>これは以下で一発にできる</p>

<pre><code>git checkout -b test
</code></pre>

<p>いろいろ編集して test ブランチにコミット</p>

<pre><code>git commit -a
</code></pre>

<p>それを trunk に反映</p>

<pre><code>git checkout trunk
git merge test
</code></pre>

<p>用が済んだらtestブランチ削除</p>

<pre><code>git merge -d test
</code></pre>

<p>とかいう感じ。</p>

<p>ブランチ作ったりマージしたりがさくさくできて気持ちいい。svk ユーザーは一度さわってみるといいと思う。</p>
]]></content:encoded>
    <dc:subject>git</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-02-19T22:56:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/02/19#e002">
    <title>18:09  zsh の prompt に git のブランチ情報を表示</title>
    <description />
    <link>http://unknownplace.org/memo/2008/02/19#e002</link>
    <content:encoded><![CDATA[<p><a href="http://unknownplace.org/memo/2008/02/04">svk でやってたもの</a>の git 版。</p>

<p><a href="http://www.flickr.com/photos/typester/2276187593/" title="git branch info in zsh prompt by typester, on Flickr"><img src="http://farm3.static.flickr.com/2243/2276187593_458d4fe402_o.png" width="356" height="169" alt="git branch info in zsh prompt" /></a></p>

<p><code>ref: refs/heads/</code> という部分を消していいのか、ほかのものが入る場合があるのかよくわからなかったので全表示している。</p>

<p>まぁぱっと見で git とわかるからいいかということでとりあえず。</p>

<p>codereposにあげてあるよ。</p>

<p>あぁ、なんか ref: とかすらでずに sha-1 ハッシュ値だけのときもある。もう少し調べないとだめだ。</p>
]]></content:encoded>
    <dc:subject>git, zsh</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-02-19T18:09:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/02/19#e001">
    <title>16:14  git</title>
    <description />
    <link>http://unknownplace.org/memo/2008/02/19#e001</link>
    <content:encoded><![CDATA[<p>cho45 さんがイイヨイイヨいっていたので git &amp; git-svn ちょっと試し中。</p>

<p>大体基本的な使い方はわかった。</p>

<p>マージが簡単なのはほんとにいい。svk の smerge がより簡単になった感じだ。</p>

<p>ブランチの処理もsvkよりこっちのほうが好き。作りまくって、マージしたら消す。</p>

<p>まだわからないのは適当な場所で git init してスクラッチ的にプロジェクトつくったときそれを svn のほうにマージするにはどうしたらいいのかがまだわからない。</p>

<p>git-svn なレポジトリからスクラッチのほうを pull すればいいのかな？ あとでためそう。</p>

<p>あと svk とちがって zsh の補完がかなり高機能でうれしい。svk のはほとんどないも同然。(あるけど遅いので使ってない)</p>

<p>もうしばらく使ってみてから使うかどうか決める。</p>
]]></content:encoded>
    <dc:subject>git</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-02-19T16:14:00+09:00</dc:date>
  </item>
</rdf:RDF>
