サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
unpush.hatenadiary.org
http://support.github.com/discussions/feature-requests/185-download-diff-button コミットのURLに.diffを付けると。単純明解だった。 追記 URLに.diffを付けた場合に取得できるdiffは改行コードがオリジナルと違っているために、そのままpatchに食わせるとうまくいかないことがあった。 サポートに問い合わせてみたところ、URLに.diffを付けた場合のはシンプルなdiff表示用(?)で、URLに.patchを付けるとgitの生パッチが落ちてくるというのを教えてもらいました。 URLに.patchを付けてやってみたところ、patchに食わせられる完全なファイルがダウンロードできた。
直前のマージを取り消す場合は、 × git reset --hard HEAD^ではなく、 ○ git reset --hard ORIG_HEADとしないと危ない、という話。 「マージ後にgit reset --hard HEAD^で取り消し」は去年の日記でもけっこう使ってるけど、たまたま上手くいっていたからよかったが、ORIG_HEADが正しい指定方法だった。場合によってはちょっと危ない。 マージコミットは複数のparentが記録されるが、mergeコマンドによって先端を移動するブランチ(=カレントのブランチ)を1番目の親としてマージコミットが作成される。 例えば topicブランチで git merge master とした場合に作成されるコミットオブジェクトは、1番目のparentはtopicブランチのハッシュ値で、2番目はmasterブランチのハッシュ値となる。 なので、その後t
コードを書く 起点をどこにするか バグ修正の場合 maint(無い場合はmaster) 新機能の場合 master(puに依存する場合はpu) コミットを作る Documentation/SubmittingPatches を読む。 パッチは論理的な単位に分ける。 git diff --check で無駄な空白が無いかチェック。 コメントアウトしたコードや不要なファイルが無いかチェック。 コミットメッセージ 最初の一行は、50文字程度の短い要約にする。最後にピリオドは付けない。 二行目は、空白行にする。 三行目以降に、コミットメッセージの本文を書く。 命令形、現在時制で書く。 コミット以前と以後で何が変わるのかを、明確に。 コードを書いた理由、何がしたかったのか、目的を明確に。 最後の行に、サインオフ(原作者の証明書に同意する署名)を書く。実名のみ。 Signed-off-by: Your
以下を参考にやってみる TK's HP - Linux Ubuntu 10.04でOpenNIを使ってKinectを動かしてみる 必要なものを入れる $ sudo aptitude install cmake libglut3-dev pkg-config build-essential libxmu-dev libxi-dev libusb-1.0-0-dev doxygen graphviz OpenNI $ mkdir ~/local/src/kinect && cd ~/local/src/kinect $ git clone git://github.com/OpenNI/OpenNI.git $ cd OpenNI/Platform/Linux-x86/Build $ make $ sudo make install KINECTドライバ ros-pkg-git/Sensor
なぜそんなことをするのかというと。卓上の据置型キーボードはきちんと座る用、HHK Proは膝上とか(腹上とか)に置いてダラっとした姿勢用。 両方とも同じようなレイアウトなら普通にいける(Ubuntu10.04)んだけど、HHKはA横がCtrl、もう1台のキーボードはA横がCapsLock…。単純にctrl:swapcapsだとHHKのA横がCapsLockになってしまう…。 卓上キーボードはCtrlとCapsLockを入れ替え、HHKはそのままにしたい。 xorg.confで個別に設定 とりあえずこんな風にして卓上キーボードだけ設定できたものの(gdm上ではうまくいってるのが分かる) Section "InputClass" Identifier "Desktop Keyboard" Option "XkbOptions" "ctrl:swapcaps" MatchDevicePath "
ときどき間違うので。 大雑把に言うと、git rebase は「git reset + git cherry-pick × n回 を自動化したもの」と考えられる(適用するコミット群が少なければ、手動でreset & cherry-pickしても良いが、たくさんあるとそうもいかない) 好きな場所にresetして、好きな位置から好きな位置までのコミットを順次適用できる。 つまりコミットを並べ替えたり除外したり、「積み木を積み直す」ようなことが出来る。 git rebase ポピュラーな使い方。 現在のブランチをにreset から見て現在のブランチにだけ存在していたコミットを順に適用 適用されるコミット群は、から見て現在のブランチにだけ存在していたコミット、つまりgit log ..HEAD で出てくるコミット。 以下の例だとA、B、Cのコミットがreset後に適用される予定 A---B---C
git-rerereってなんかレレレのおじさんみたいですが(Reuse recorded resolution of conflicted merges だそうな)、同じような衝突を何度も起こす状況で使うととっても便利なようで、調べつつ、メモ。 Linusが言っている「無駄なマージコミットやめて」を実現するには、rebaseがあればいいよね、と思ってたんだけど、既に公開しているようなブランチとなると、rebaseするわけにもいきません。 でも途中でちょっとだけ本線とマージしてテストしてみたくなったり、マージした後でやり直して再度マージしてみたくなったりも、しがちです。 そうなるとキツいのが、分かりきってるようなコンフリクトの解消。同じようなマージを繰り返すと、同じように衝突してるところを何度も手で直す作業を繰り返しやるハメになって、泣きそうになります。かといってマージを限界まで我慢して一発
普通にgit-svnをやろうとすると、活発なプロジェクトだと既に数千以上の履歴があったりなんかして、全部フェッチするのにアホみたいに時間がかかります。あときっとsvnのホストも、負荷がデカくて涙目だと思います。 それで、githubあたりからgit-svn済みのgitリポジトリを入手して続きをやりたくなるんですが(gitだとかなりの履歴があってもすんなり取得できる)、このやり方はgit-svnのmanページのBASIC EXAMPLESに載ってます、がしかし、どうもうまく出来ないので、よくわからないけど出来るようにするやり方。rubygemsでやってみました。 githubで"rubygems"で検索したら、unofficial mirrorが見つかりました。感謝しつつクローンします。 $ git clone git://github.com/vvs/rubygems.git $ cd r
このページを最初にブックマークしてみませんか?
『unpush.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く