タグ

gitに関するsomathorのブックマーク (82)

  • インデントコミットで真犯人がわからなくなった場合の git blame

    config_param :queued_chunk_flush_interval, :time, :default => 1 を追加したコミットがどれかを探したいとします。 しかし、git blame を見るとこんなかんじに、インデントコミットによってほぼ全ての履歴が上塗りされていてどれだかわからない、みたいな状況にどうやって真犯人を探そうかという話です。 1. git blame -w を使う インデントコミットを無視したいだけであれば git blame の -w オプションが使える。-w は比較の際に whitespace を無視してくれるオプション。git diff にもあるよね。 $ git blame -w lib/fluent/output.rb ... (省略) 14d01c71 (Masahiro Nakagawa 2013-03-27 03:56:51 +0900 1

    インデントコミットで真犯人がわからなくなった場合の git blame
    somathor
    somathor 2014/04/02
  • Git作業スタイル: リモートレポジトリに保存しつつキリのいいところで変更をまとめる - Qiita

    あらまし 大きな作業をする場合、こまめにローカルレポジトリのブランチにコミットして、何かあったときにすぐに戻せるようにしたくなります。 また、パフォーマンス改善など、実験や研究の色合いの強い作業は、試行錯誤しながらブランチに"とりあえず"保存しつつ、「あっちのほうが良かったかな〜」と思ったときに取り出せるようにしておきたくなるものです。 また、ローカルレポジトリだけでなく、リモートレポジトリに置いたほうがチームみんなで共有できたりしていろいろ便利です。 ですが、最終成果物はなるべく少ないコミットにしないと、マージが大変です。 メインブランチにこんなコミットが入るとゲンナリしますよね? $ git log --oneline bcdef12 Revert foo abcdef0 Add foo cdef123 Refactor bar again def1234 Refactor bar e

    Git作業スタイル: リモートレポジトリに保存しつつキリのいいところで変更をまとめる - Qiita
  • tigでgitをもっと便利に! addやcommitも - Qiita

    皆さん、tigコマンドを活用していますか? tigは、コンソール上で使えるgitブラウザです。実はずっと、ただのきれいなgit logだと思っていたのですが、当はそんなことはありません。かなり使えるやつなのです。 インストール ソースコード: https://github.com/jonas/tig インストール方法: https://github.com/jonas/tig/blob/master/INSTALL.adoc この辺りを参考にしてみてください。詳細は割愛します。 基の使い方 この状態の差分を扱っていきます。いつものこれだとこんな感じ。 git logが素敵にビジュアライズされてます。この画面をmain viewといいます。 ここでエンターを押すと、下半分に差分の詳細(diff view)が表示されます。 下矢印で、Unstaged changesの差分を見てみるとこんな

    tigでgitをもっと便利に! addやcommitも - Qiita
  • Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita

    ファイル編集がコンフリクトした場合 下記はよくある(忌々しい)コンフリクト画面ですね。 皆さんはコンフリクトのmergeはどんな方法でやっていますでしょうか? vimemacsで直接編集している方が多いイメージですが、実際開いてみると、下記のように差分が表示されていると思います。 この画面を見ただけではどのようにmergeすればよいのかわかりません。(Objective-CのARC/MRC双方の開発経験がある人は目をつぶってください・・) gitにはこのようなコンフリクトのmergeを支援するgit mergetoolコマンドが搭載されています。 このままEnterキーを押すと下記のような画面が立ち上がります。 画面幅の都合でフォントが小さいのですが、ここで「mergeしたい差分が作られる直前の状態」と「mergeしたい差分」に注目してみます。 この2つを見比べると、@propertyの

    Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita
    somathor
    somathor 2014/02/19
  • Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば

    Git に同梱されている contrib/diff-highlight を使います。 あとは README に書いてあることの引き写しですが、PATH の通ったディレクトリに置いて、~/.gitconfig に以下のように設定を書く。 [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less すると、対応するコマンドの出力がこんな風になります。 行レベルの diff に加えて、単語レベルでの diff もハイライトされ、GitHub での diff のように描画されました。 組み込みのオプションで --color-words というのがありますが、こちらを使うと行レベルの diff 情報が失われるので、少し不便だったわけですね。とすべて README に書いてあ

    Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば
  • index - やる夫で学ぶ gitcore-tutorial

    やる夫で学ぶ gitcore-tutorial Introduction Creating a git repository Populating a git repository Commiting a git state Making a change Inspecting changes Tagging a version Copying repositories Creating a new branch Merging two branches Merging external work TBD

  • 「GitHub トレーニングチームから学ぶ Git の内部構造」に行ってきました #githubjp - 若くない何かの悩み

    GitHub トレーニングチームから学ぶ Git の内部構造」に行ってきました!Gitの中・上級者向けの素晴らしい勉強会でした。おもしろかった! 今回の勉強会で一番面白かったのは、「とりあえずコミットをしろ。そうすりゃあとでなんとでもなる」です。git reset --hard によって消えたはずのコミットが git reflog から復元できるなんて目から鱗でした。現在の変更を破棄したい場合でもとりあえずコミットしておけ、という教訓の意味がやっと分かりました。 末尾に勉強会のノートを添えておきます。 このイベントは、その場で図を書くような説明などアドリブが多く、とてもわかりやすかったのですが、まとまった資料を貼るのが難しそうな発表でした。したがって、資料は公開されないかもしれません。とすると、このノートはいまのところ唯一の資料です! ちなみに、会場の様子はこんな感じでした。勉強会の後の

    「GitHub トレーニングチームから学ぶ Git の内部構造」に行ってきました #githubjp - 若くない何かの悩み
  • Jenkinsの開発者、間違えて一ヶ月前のローカルレポジトリをgit push --forceしてしまう

    Jenkinsの開発者、間違えて一ヶ月前のローカルレポジトリをgit push --forceしてしまう Jenkin developers accidentally do "git push --force" to over 150 repos on github | Hacker News Jenkinsの開発者、Luca Milanesioによって、Jenkinsの多くのgitレポジトリに対してpushが行われた。不思議なことに、pushをしたというのに変更点はほとんどみられない。一体ルカは何をやったのだ。 Dominik Bartholdi やあみんな、とくにルカ。 昨日、GitHub上のJenkinsの多くのレポジトリ(50以上)に、なにか変なことが起こった。 どうやら、Luca Mmilanesioが、何の変更もないのに、たくさんのたくさんのレポジトリにpushしたらしいのだ。

  • 英語コミットコメントに使えるオシャレフレーズ集

    英語コミットコメントに使えそうなオシャレフレーズを聞いたので、これを使ってドヤ顔コミットをしたくてやれるチャンスを虎視眈々と狙う毎日です v, x, g, z とかこのへんが入ってる単語だとなんかカッコ良さ増す。 tweak とかデザイナーにはだいぶ便利。 単語 意味

    英語コミットコメントに使えるオシャレフレーズ集
  • Git ライフを快適にする知られざるコマンドたち

    Git 初心者〜中級者に向けて、目立たないけど便利なコマンドを紹介します。

    Git ライフを快適にする知られざるコマンドたち
  • git rebaseを使うときのルール | Yakst

    Re: [git pull] drm-next Linus Torvalds Sun, 29 Mar 2009 14:48:18 -0700 (訳注 : Daveのrebaseのやり方が好みでないというLinusに対して) > 2009年5月29日(日曜日) Dave Airlieの発言 > > 今から自分がしようとしているのは、直線じゃないツリーを送ろうとしているだけだ。 > パッチを自分の次のツリーにマージする時はいつでも、そこにそれがあるからだ。 > 自分は、Ericのツリーを自分のツリーに直接プルして、その結果を送ろうとしている。 > きれいなマージ履歴について注意しているとは思っているけど、前に言ったように、 > カーネルツリーに関してのドキュメントが何もない状態では、君がどうしたいのか > 当のところは今の今まで分からないよ。 自分が求めているのは、きれいな履歴だ。でも、それ

    git rebaseを使うときのルール | Yakst
    somathor
    somathor 2013/08/01
  • Git にパッチを送って取り込まれた話

    Git の挙動に変なところを見つけたので、パッチを作って Git のメーリングリストに投げてみたところ、何度かのレビューを経て、無事に取り込まれた。 Git に貢献したい人とか、オープンソース開発の流れに興味がある人もいるだろうから、作業の流れを書いておくことにする。 1. バグを発見する 何はともあれ、修正したいところを見つけるところから。 先日、git difftool --dir-diff が便利すぎて泣きそうです という記事を書いたが、difftool --dir-diff の挙動を調べているうちに、一時ファイル書き戻し条件が変なことに気づいた。 手元のバージョンが古いのかとも思ったが、master ブランチでも再現したので、ちょっくら深入りしてみた。git difftool は Perl スクリプトだったので、ソースコードに print を追加しつつ挙動を探っていった。しばらく調

    Git にパッチを送って取り込まれた話
  • Git, fatal: The remote end hung up unexpectedly

    When I tried to run git push origin master --force I just got Counting objects: 2649, done. Delta compression uses up to 2 threads. Compressing objects: 100% (1280/1280), done. error: RPC failed; result=22, HTTP code = 413 | 116 KiB/s fatal: The remote end hung up unexpectedly Writing objects: 100% (2504/2504), 449.61 MiB | 4.19 MiB/s, done. Total 2504 (delta 1309), reused 2242 (delta 1216) fatal:

    Git, fatal: The remote end hung up unexpectedly
  • 英語のコメントや issue で頻出する略語の意味 (FYI, AFAIK, ...) - Qiita

    〔提案に対して〕いいと思う;問題ないと思う;〔コードレビュアーが、問題ないコードに対して〕レビュー終了;(コードの)承認

    英語のコメントや issue で頻出する略語の意味 (FYI, AFAIK, ...) - Qiita
  • CUI で Git 使うなら入れておきたいツールまとめ | バシャログ。

    ブランコ と同い年だったことが判明しました。みなさん、こんにちは nakamura です。あいつも昭和 55 年会か・・・。 Git をコマンドラインで使う利点は色々ありますが、git コマンド以外にも便利なツールがいくつかあるっていうのもひとつかなと思います。今日はそんな中でも個人的にこれないと困るわーっていうのを独断と偏見でご紹介したいと思います。 tig Index of /tig これはけっこう有名かも。いわゆるリポジトリブラウザです。カラフルで見やすいし、その場で任意のコミットの差分も見れちゃうのでリポジトリブラウザとしては git コマンドよりも格段に高機能です。 gitolite Hosting git repositories sitaramc/gitolite gitolite は Git リポジトリを管理するためのツールです。ドキュメントを少し読んでみれば分かりますが、

    CUI で Git 使うなら入れておきたいツールまとめ | バシャログ。
  • Git に関する良記事 - あどけない話

    適宜追加します。 Pro Git 僕が読んだ Git の書籍の中では、一番分かりやすいと思いました。日語版の書籍はありませんが、オンライン版が翻訳されています。 Pro Git 図解 Git Git の初心者が動作を理解するのにおススメ。 図解 Git こわくない gitランチとマージの考え方がよく分かるスライド(@methaneさんから教えて頂きました)。 こわくない git あなたの知らないGit Tips 書籍には載ってない Tips の解説。知らないと損するかも。 あなたの知らないGit Tips ワークフロー、あるいはブランチング チームでブランチを使う際の取り決め。自分のチームで一から議論するより、すでにあるものを参考にしましょう。 git-flow github-flow Github Enterprise Github Enterprise は、企業内に設置して使うこ

    Git に関する良記事 - あどけない話
    somathor
    somathor 2013/04/04
  • Non-Fast-Forward Push の解決 - Linux 入門

    他の開発者とともに同じリモートリポジトリ (depot リポジトリ) を利用していれば、しばしば発生するのが Non-Fast-Forward Push 問題です。 Non-Fast-Forward とは何かということを説明するために、そもそも Fast-Forward とは何かということを説明します。 Fast Forward とは? ある時点で master ブランチからブランチ A ができたとします。その後、ブランチ A にてコミットします。 その間、master ブランチでは全くコミットが行われていないとします。 この状態ではブランチ A はブランチ master に安全にマージ可能ですよね。ブランチ A に対して行ったコミットを master にも行えば良いだけですから。 ただ、実際に Fast Forward マージは同じ変更をせっせと再生するのではなく、単に master ブ

    Non-Fast-Forward Push の解決 - Linux 入門
    somathor
    somathor 2013/03/26
  • いつやるの?Git入門

    ↓のv1.1.0版の方が、より見やすく改善したものになってます! http://www.slideshare.net/matsukaz/git-28304397 社内で開催したGit勉強会の資料。 SVNとの比較や、Gitの内部構造と各コマンドの関係、ブランチやリモートリポジトリとの関係を分かりやすく説明したつもり。 こういう資料に対する投げ銭的なのがどうなるのか気になっていたので、もしよろしければ・・・!15円からできるソーシャルカンパサービスだそうですm(_ _)m http://kampa.me/t/devRead less

    いつやるの?Git入門
  • gitの入門用のチュートリアル"Learn Git Branching"を訳した | 48JIGEN *Reloaded*

    gitの入門用のチュートリアル"Learn Git Branching"を訳した 2013/03/18 ここで公開してます。スマホからだと動かないのでPCで見てください。 http://remore.github.com/learnGitBranching-ja ChromeとFirefoxでは動作確認してます。翻訳リソースはgithubに置いてあります。 Laern Git Branchingは: グラフィカルにgitツリーを操作しながらrebaseとかmergeとかを学べる IDEA * IDEAさんとかHackerNewsとかで、1か月くらい前に話題になってた MIT Lisenceで公開されてて自分で演習問題も作れる というツール。公開されてから1か月くらいしか経ってないのに、既に中国語、韓国語、フランス語の3か国語に翻訳されてる。海外の人仕事はえーと感心しました。 春だし新人さん

  • Git初心者が絶対に覚えておくべきコマンド - idesaku blog

    Gitの使い方を覚えるにあたって、まず知っておきたいのは――git-cloneだのgit-commitだのは当然として――「操作をミスったときにどのように回復するか」である。それを実現するのは、次の3つのコマンドだ。 git-commit --amend git-reset git-reflog git-commit --amend あるファイルをコミットしたとしよう。 $ (edit...) $ git commit -am 'メッセージ生成処理を実装したよ。'しかし、しばらくして彼は気づいた。 def create_massage(param) ...typoしてる!massageじゃない、messageだ!マッサージを作ってどうする! 慌てるな。まずは直してステージに上げるんだ*1。 def create_message(param) ...$ git add .そして…。 $ gi

    Git初心者が絶対に覚えておくべきコマンド - idesaku blog