タグ

gitに関するtaraoのブックマーク (60)

  • GitベースのコードリーディングTips - クックパッド開発者ブログ

    こんにちは、投稿推進部の森川 (@morishin127) です。 エンジニアが既存のプロダクトの開発に携わる際、他人の書いたソースコードを読み解くところから始まります。過去に書かれたコードの意図を理解することは自分が書いたものでもしばしば難しく、他人が書いたものならなおさらです。この記事では過去に書かれたコードを理解するための工夫についてお話したいと思います。 なお、この記事ではプロダクトのソースコードはgitおよびGitHubのPull Requestを利用して開発が進められていることを前提としています。 特定の行から関連するPull Requestページを開く クックパッドのソースコードには概してコメントがあまり書かれておらず、見ただけでは理解しづらいような特殊な方法をとっている場合のみコメントを書いている印象です。基的に実装に関する説明はソースコード中ではなく、GitHubのPu

    GitベースのコードリーディングTips - クックパッド開発者ブログ
    tarao
    tarao 2015/11/17
  • 重厚長大なgitレポジトリをさらっとcloneして作業し始める - Qiita

    背景 あまり望ましくない、と思いつつ振り返ってみると巨大なレポジトリができてしまうこと、ありますよね。(あることにしましょう) こういうレポジトリで 別のディレクトリで実験を始めたい 新しいサーバにcloneしたい みたいな時にgit cloneにものすごい時間がかかって萎えます。 こんな時のご提案です。 やり方 branch 名指定、depth 1でcloneする git clone --depth 1 --branch experimental-branch git@github.com:k12u/huge_repo.git experimental_huge_repo 積み重なった黒歴史も見なかったことにしてくれます。 (オプション) config のremote.origin.fetchを完全体に戻す。 このままだとgit fetchしてもclone時に指定したbranch以外は降

    重厚長大なgitレポジトリをさらっとcloneして作業し始める - Qiita
    tarao
    tarao 2015/05/21
  • GitHubでの”Merge pull request”の弊害 | POSTD

    私は GitHub が大好きです。GitHubはオープンソースへの コントリビューション (寄与貢献)を何十倍も容易に、そして楽しいものにしたと思います。ですが、GitHubがPull RequestというwebのUI形式で前面に押し出しているオープンソースの メンテナー のワークフローが、プロジェクト品質とコントリビューションを受けつけるスピードの弊害になるということに気がつきました。そこで、GitHubの Pull Request にある「Merge pull request」ボタンをクリックする前に、少しお話をさせてください。 メンテナーの紹介 ジェーンはそこそこの成功を収めているオープンソースプロジェクトのメンテナーです。彼女は毎週プロジェクトGitHubリポジトリに上がる新しい Issue を確認し、リクエストに対し速やかにフィードバックを返します。リクエストをすべて実行する時

    GitHubでの”Merge pull request”の弊害 | POSTD
  • 巨大なリポジトリ を Git で上手く扱う方法 | Atlassian Japan 公式ブログ | アトラシアン株式会社

    git は、コードベースの発展過程を記録し、開発者間の協同作業を効率化する強力なツールです。でも、記録対象のリポジトリがとてつもなく巨大なものになったときは何が起こるのでしょうか? この記事では、いくつかの異なる意味での巨大化に正しく対処するためのアイデアと手法を少し紹介してみたいと思います。 二種類の 巨大なリポジトリ よく考えてみると 巨大なリポジトリ が生ずる理由はおおまかに言って二つあります: 非常に長い期間にわたって履歴が積み上げられた (プロジェクトが非常に長い期間継続的に拡大を続けたために開発成果が積み重なった) 場合 巨大でしかも履歴の記録が必要なバイナリ データが存在し、それがコードに反映される場合 その両方の場合 即ち、リポジトリの巨大化は二つの異なる方向に向かって起こることになります。それは、作業ディレクトリのサイズ (即ち直近のコミットのサイズ) の問題と全体の履歴

    巨大なリポジトリ を Git で上手く扱う方法 | Atlassian Japan 公式ブログ | アトラシアン株式会社
    tarao
    tarao 2014/05/28
  • Insert a commit before the root commit in Git?

    I've asked before about how to squash the first two commits in a git repository. While the solutions are rather interesting and not really as mind-warping as some other things in git, they're still a bit of the proverbial bag of hurt if you need to repeat the procedure many times along the development of your project. So, I'd rather go through pain only once, and then be able to forever use the st

    Insert a commit before the root commit in Git?
    tarao
    tarao 2014/03/15
  • local repository をよいかんじに remote に同期させる git update - tomykaira makes love with codes

    2013-05-22 local repository をよいかんじに remote に同期させる git update git git-update というコマンドがあるわけではありません。エイリアスです github などで PR ベースのチーム開発をしていると、頻繁に branch を切り、 push し、それを誰かが master に merge し、 PR の branch を消す、という流れが発生する。 チームの規模にもよるが、小規模〜中規模なチームでも日によっては5回じゃ効かない。 これを繰替えしているとどうなるかというと、私のようにズボラな場合、 ローカルに、マージ済みの branch がたまる branch 名の補完がききにくくなり、 TAB をばかばか連打して隣の人におこられたり、キーボードがこわれて怒られたりする いつのまにか master が更新されていて、追従する

    tarao
    tarao 2013/05/23
  • git-messenger.elを書いてみました - Shohei Yoshida's Diary

    TokyoVim #14 に参加して git-messenger.vim を作ってみた - sorry, uninuplemented: の Emacs版です。まだその行のコミットログをポップアップする 機能しかありません。 リポジトリ https://github.com/syohex/emacs-git-messenger コード popup.elが必要になりますので、利用する際は前もってインストールして おいてください。 ;;; git-messenger.el --- Port of gitmessenger.vim ;; Copyright (C) 2013 by Syohei YOSHIDA ;; Author: Syohei YOSHIDA <syohex@gmail.com> ;; URL: ;; Version: 0.01 ;; Package-Requires: ((p

    git-messenger.elを書いてみました - Shohei Yoshida's Diary
  • GIG

    GIGとは?GIGはGitHubを利用したブログサービスです。 GIGで記事を投稿すると、GitHub上のあなたのレポジトリに記事データが保存されます。 手元で編集した記事をGitHubにPushすると、GIGはあなたのレポジトリ内の記事を自動的に同期します。

    tarao
    tarao 2013/02/04
  • git-gutter.elを書いてみました - Shohei Yoshida's Diary

    ST2の中でGitDiffを視覚化するGitGutterが死ぬほど便利だった - mizchi log という記事を見て、作ってみました。上記のサイトであるように "git diff"を視覚化するものです。 リポジトリ syohex/emacs-git-gutter · GitHub 家はこちらです。 例 以下のようなコミット済みのファイルがあったとします。 #!/usr/bin/env ruby # -*- coding:utf-8 -*- def orig_func # I'm orig func end def foo puts "hello foo" end それを以下のように変更します。 #!/usr/bin/env ruby # -*- coding:utf-8 -*- def orig_func # I'm orig func end def added_func # I'

    git-gutter.elを書いてみました - Shohei Yoshida's Diary
  • Detach (move) subdirectory into separate Git repository

    I have a Git repository which contains a number of subdirectories. Now I have found that one of the subdirectories is unrelated to the other and should be detached to a separate repository. How can I do this while keeping the history of the files within the subdirectory? I guess I could make a clone and remove the unwanted parts of each clone, but I suppose this would give me the complete tree whe

    Detach (move) subdirectory into separate Git repository
    tarao
    tarao 2012/12/14
  • 【翻訳】あなたの知らないGit Tips

    Mislav Marohnićさんの "A few git tips you didn't know about" を翻訳しました。 元記事はこちら: http://mislav.uniqpath.com/2010/07/git-tips/ (翻訳の公開は人より許諾済みです) 翻訳の間違い等があれば遠慮なくご指摘ください。 あなたの知らないGit Tips注意:いくつかのコマンドやオプションは Git の version 1.7.2 以降が必要です。 OS Xでは、 Homebrew で簡単にアップグレードできます: brew install git git log でブランチとタグも見る$ git log --oneline --decorate 7466000 (HEAD, mislav/master, mislav) fix test that fails if current d

    tarao
    tarao 2012/11/29
  • 天下一gitconfig大会

    天下一gitconfig大会(サイボウズ社内git勉強会@2012/11/20)の@teppeisの資料です。 ぎっとぎとにしてやんよ GistDeck gistでmarkdown書いたらbookmarkletでプレゼンになるよ。 ↓これをBookmarkに登録してこのページで実行してみよー! javascript:(function()%7Bvar%20s%3Ddocument.createElement(%27script%27)%3Bs.setAttribute(%27src%27,%27https://raw.github.com/teppeis/gistdeck/fix/gistdeck.js%27)%3Bdocument.getElementsByTagName(%27head%27)%5B0%5D.appendChild(s)%3B%7D)()%3B 複数行のcodeとかが微

    天下一gitconfig大会
    tarao
    tarao 2012/11/21
  • テキストでないファイルのdiff(差分)をとる方法 - ザリガニが見ていた...。

    AppleScriptはスクリプト言語なんだけど、ファイルに保存するときはAppleScript形式にコンパイル(変換)される。その結果、AppleScriptエディタでは人間が理解できるコードに見えるのに、普通のテキストエディタで開くとこんな状態。 その実態は、AppleScript独自のバイナリファイルなのだ。バイナリファイルの痛いところは、diffを実行してもそのままでは差分がとれないこと。どうしても差分をとりたいと思うのなら、いったんAppleScriptファイルを開いて、テキストファイルとして保存したファイルに対してdiffを実行するしかない。 しかし、それでは手間がかかりすぎる。手軽にdiffできないと、いずれ使わなくなる。そんな訳で「AppleScriptはバイナリファイルなのだから、しょうがない」と以前から諦めていたところがあった。(Gitのあの素晴らしい仕組みを知るまでは

    テキストでないファイルのdiff(差分)をとる方法 - ザリガニが見ていた...。
    tarao
    tarao 2012/11/06
  • Gitで特定のファイルのローカル環境での変更を無視する - Qiita

    Git管理されたレポジトリで、ローカル環境でのみ必要な設定ファイルの変更が修正ファイルとして出てきてしまうので、それを無視する方法です。 特定のファイルの変更を無視する

    Gitで特定のファイルのローカル環境での変更を無視する - Qiita
    tarao
    tarao 2012/10/31
  • どこでも使える git diff と git apply - Qiita

    Git Advent Calendar / Jun. 28日目の記事です。27日目はつるはしで過去を発掘するでした。 Git リポジトリの外で git diff / git apply あまり知られていないことですが、 git diff と git apply は Git リポジトリの外でも使えます。普通の diff ではできない、バイナリファイルを含む2つのディレクトリの差分を取りたいときなどに重宝します。ちょっと試してみましょう。 $ mkdir dir1 dir2 $ echo foo > dir1/text $ echo FOO > dir2/text $ dd if=/dev/random of=dir1/binary bs=128 count=1 $ dd if=/dev/random of=dir2/binary bs=128 count=1

    どこでも使える git diff と git apply - Qiita
    tarao
    tarao 2012/06/30
  • GitレポジトリをRubyから操作するライブラリGritを試してみた - ごろねこ日記

    仕事でブラウザベースのファイルライブラリ的なものを作ろうかどうしようかって雰囲気なので、どうせなら過去の履歴もコメント付きで追えて、なおかつ過去の変更時点での状態のものをダウンロード出来たら便利じゃね?って思ったらそれってGitじゃんっておもったので調べてみた (ハァハァ 参考にしたのはこのサイト Grit を使って Git リポジトリを Ruby で操作する 紹介されているのはGritとかいうRubyのライブラリ。なんじゃいそれはと思ってたら、かのgithubでも使ってるそうな。おお。信頼性高そう。 インストール gemを検索してみたらあったあった(^◯^) $ gem search grit -r *** REMOTE GEMS *** grit (2.4.1) ではインストール $ sudo gem install grit Successfully installed grit-2

    GitレポジトリをRubyから操作するライブラリGritを試してみた - ごろねこ日記
    tarao
    tarao 2012/02/27
  • GITLAB: Self Hosted Git Management Application

    1. Keep your source code at your server! Your own lite app for projects/repositories hosting on your server. Fast, secure and stable solution based on ruby on rails. 2. Use Git! We use git as version control system for projects 3. Browse source-code, issues, comments. Manage team access to repository

    tarao
    tarao 2011/10/24
  • はてなブログ | 無料ブログを作成しよう

    台湾ひとり事旅(前編) 台湾へ行ってきた。チケットと宿を予めおさえていたものの、台湾地震の発生で予約を一度はキャンセル。その後の台湾観光庁の旅行に来て大丈夫だよ、という声明を確認してやはり行くことに。 目的はシンプルで、台北周辺で美味しい事をたくさんべること。そして自宅…

    はてなブログ | 無料ブログを作成しよう
    tarao
    tarao 2011/10/15
  • Git管理の神ツール「Gitolite」なら、ここまでできる!

    「Git」使ってますか? 近年、分散バージョン管理システム「Git」が急速にシェアを伸ばしています。筆者は、チケットシステムやバージョン管理の勉強会などを開催したりしていますが、Gitユーザーがかなり増えてきていると感じます。 しかしながら、そのような勉強会でアンケートを取ってみると、実案件では半分以上の人がSubversionを利用しており、Gitの導入はまだまだ進んでいません。移行コストが掛かったり、プロジェクトマネージャ層への知名度がまだまだ低いというのもありますが、理由の1つとして、ユーザー管理が煩雑であったり、アクセス制御に関する情報が不足しているということもあると思います。 そういうわけで稿では、Gitリポジトリのユーザー管理やアクセス制御を簡単に行う「Gitolite」を紹介します。 なお、稿ではGitの利用方法については紹介しませんので、Git自身の使い方については改め

    Git管理の神ツール「Gitolite」なら、ここまでできる!
    tarao
    tarao 2011/10/04
  • git-rerereのメモ - unpushの日記

    git-rerereってなんかレレレのおじさんみたいですが(Reuse recorded resolution of conflicted merges だそうな)、同じような衝突を何度も起こす状況で使うととっても便利なようで、調べつつ、メモ。 Linusが言っている「無駄なマージコミットやめて」を実現するには、rebaseがあればいいよね、と思ってたんだけど、既に公開しているようなブランチとなると、rebaseするわけにもいきません。 でも途中でちょっとだけ線とマージしてテストしてみたくなったり、マージした後でやり直して再度マージしてみたくなったりも、しがちです。 そうなるとキツいのが、分かりきってるようなコンフリクトの解消。同じようなマージを繰り返すと、同じように衝突してるところを何度も手で直す作業を繰り返しやるハメになって、泣きそうになります。かといってマージを限界まで我慢して一発

    git-rerereのメモ - unpushの日記
    tarao
    tarao 2011/07/20