Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

インターネットには、Git submodule を使っては いけない という記事が飛び交っています。私はこれらの記事が言うほどひどいものとは思っていませんが、そういった主張が大方正しいことは認めます。以前の投稿でも説明しましたが、submodule は利用価値のあるユースケースは少なく、逆にいくつもの欠点があります。 では、これに代わるものはあるのでしょうか? 答えは「ある」です。Git の利用は続けつつ、プロジェクトにおけるソフトウェアの依存関係を追跡することができるツールが (少なくとも) 二つあります : git subtree google repo この記事では、git subtree に注目し、完全とまではいえないもののそれが git submodule の問題を解決するものであることを説明しようと思います。 実例としていつもの私のユースケースを取り上げます。自分の dotfi
Vincent Driessenさんの "A successful Git branching model" を翻訳しました。 元記事はこちら: http://nvie.com/posts/a-successful-git-branching-model/ (翻訳の公開と画像の利用は本人より許諾済みです) このブランチモデルの導入を補助してくれる、git-flowというGit用プラグインがあるそうです。 翻訳の間違い等があれば遠慮なくご指摘ください。 A successful Git branching model この記事では、私のいくつかのプロジェクト(仕事でもプライベートでも)で約一年ほど導入して、とてもうまくいくことがわかった開発モデルを紹介する。しばらく前からこれについて書くつもりだったんだが、今まですっかりその時間を見つけられずにいた。ここでは私のプロジェクトの詳細については書
前回 git diff を図に書いてみたところ、自分の中で意外と整理できたので、これまたなんとなく使っていた git reset についてもまとめてみた。 とりあえず結論を先にまとめよう。 git reset とは? HEAD の位置を変更するコマンド。 オプションによってインデックス、ワーキングツリーの内容も変更できる。 git reset のオプションは? --soft、--mixed(オプションなしと同等)、--hard オプションがあり、影響度の小さい順に以下のようになる。 --soft HEAD の位置のみを変更する。インデックス、ワーキングツリーには影響なし。 --mixed (またはオプションなし) HEAD の位置とインデックスを変更する。ワーキングツリーには影響なし。 --hard HEADの位置、インデックス、ワーキングツリーをすべて変更する。 さて、git reset
git を https 経由で使う場合、pull や push のたびに毎回パスワードを聞かれてしまいます。 これを改善するには git-credential を使うと良いです。 git-credential は git 1.7.9 以降で使用可能です。 なお、古いやり方としては .netrc を使う方法もありますが、パスワードを平文でファイルに保存するので、やらないほうがいいと思います。 使用可能な管理方式 git-credential では、以下のような方法でユーザ名とパスワードを管理できます。 git-credential-store : ファイルに保存します。ただし、パスワードが平文が保存されます。 git-credential-cache : 常駐プロセスに記憶させます。 git-credential-osxkeychain : Mac OS X のパスワード管理を使います。 G
Git では、マージやリベースという機能を使って、別々のブランチを 1 つに結合することができます。 たとえば、次のようなブランチがあったとして、マージ機能で結合する方法について見てみます。 状況としては、"master" ブランチが最終リリースを行った時点です。 そして、次期バージョンの開発のために "improve1" ブランチを作成してそこで制作を行っているところで、リリースに不具合が見つかりました。 その不具合に対応するため、途中で "master" ブランチから新たに "fix1" ブランチを作成して、バグフィックスを行いました。 さて、"fix1" ブランチでの不具合修正が完了したとします。 このような場合、修正したプログラムをリリースするために、"master" ブランチから "fix1" ブランチまでに行った修正を、次のようにして "master" ブランチに結合(マージ)
ソースコードのなかでバグが多いのは、より高頻度に、かつ最近になって集中的に直している部分。これが、グーグルで採用された「バグ予測アルゴリズム」であることを、先月の記事「グーグルはコードの品質向上のため「バグ予測アルゴリズム」を採用している」で紹介しました。 そのバグ予測アルゴリズムを実装したツール「bugspots」がオープンソースとして公開されています。 gitのレポジトリを分析 bugspotsはRubyで記述されており、gitのレポジトリから履歴を読み込んで分析し、どのモジュールにバグが含まれている確率が高いかを示してくれます。 以下のようにインストールして実行(説明ページから引用)。 $> gem install bugspots $> git bugspots /path/to/repo $> git bugspots . # (in current git directory)
こんにちは。インフラの sotarok です。 先日から Git 関連の話をしている通りですが、社内で Git を使い始めています。 今日は、Git を使った日々の開発〜リリースまでのフローや、そうしたものの運用と、それをサポートするために作ったツール git-daily の紹介をしたいと思います。 ソフトウェア開発とウェブ開発の違い いやウェブ開発も広義のソフトウェア開発なのですが、ここでいうソフトウェア開発とは、クライアントアプリケーションやライブラリのようなものを指すと思ってください。 実際、ウェブ開発をしている方は感じていることだとは思いますが、両者の開発フローはかなり異なるものです。もちろん社風や開発の方針等によって色々あるとは思いますが、主に次のような特徴が挙げられると思います: ソフトウェア開発 アプリケーションはクライアントで動作する リリース間隔は比較的長く、次のバージョ
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
GITWeaverはDreamweaverとTortoiseGitを連携させるDreamweaver機能拡張。Gitコマンドが使えるようになる。 GITWeaverはWindows/Dreamweaver用のオープンソース・ソフトウェア。企業ではまだまだSubversionがメインのリポジトリ管理システムになっているようだが、個人を中心にGitを使うケースが増えている。プログラマーが使っているケースが多いが、デザイナーの方も使い始めている。 メニュー そんなGitとWindowsを組み合わせて使う際にはTortoiseGitが便利だが、さらにDreamweaverを使ってデザインをしているならお勧めなのがGITWeaverだ。 GITWeaverはTortoiseGit必須のDreamweaver拡張なのでWindows版向けのソフトウェアになる(筆者はMac OSX版しかないためスクリー
「Git」使ってますか? 近年、分散バージョン管理システム「Git」が急速にシェアを伸ばしています。筆者は、チケットシステムやバージョン管理の勉強会などを開催したりしていますが、Gitユーザーがかなり増えてきていると感じます。 しかしながら、そのような勉強会でアンケートを取ってみると、実案件では半分以上の人がSubversionを利用しており、Gitの導入はまだまだ進んでいません。移行コストが掛かったり、プロジェクトマネージャ層への知名度がまだまだ低いというのもありますが、理由の1つとして、ユーザー管理が煩雑であったり、アクセス制御に関する情報が不足しているということもあると思います。 そういうわけで本稿では、Gitリポジトリのユーザー管理やアクセス制御を簡単に行う「Gitolite」を紹介します。 なお、本稿ではGitの利用方法については紹介しませんので、Git自身の使い方については改め
みなさん、Git使ってますか?僕はまだメインのVCSがSubversionなのもあって、なかなか慣れません。せっかくGitを使っているのに、ちょっと不便なSubversionくらいの位置づけです。でも、同じような理解度の人って多いんじゃないでしょうか。 一方で、最近はGitHub管理のオープンソースプロジェクトが増えてきました。バグレポートを送るにしてもpull request*1が前提のような空気があり、Git初心者には少し敷居が高い印象があります。 そんな僕も先日初pull requestをしてみたんですが、色々な失敗の積み重ねで残念なpull requestになってしまいました。その反省を元に、本稿ではpull requestする際のベストプラクティスを紹介します。これは「Git Workflow」をベースにコマンド例などを加筆したものです。 概要 pull requestする際は、
こんにちは、中川です。 Gitを使い始めてから、Subversionを使う機会がめっきり減ったこの頃です。 Gitだとローカルだけで簡単に使い始められるのもいいですが、気軽につくれるbranchや、mergeのしやすさがたまりませんね。 インストール直後の状態でも普通に利用できますが、 ちょっとした設定でさらに使いやすくなる方法をご紹介したいと思います。 ※今回ご紹介する内容はいずれも私のMacBook上での動作確認となり、Windows環境は考慮していませんがご容赦ください。 ■ユーザー名とE-mailアドレスの設定 まずは、最初にユーザ名と、メールアドレスを設定してしまいましょう。 $ git config --global user.name "yoshiki" $ git config --global user.email "yoshiki@example.com"
Git、Mercurial、Bazaarはオープンソースの分散バージョン管理システムで、どれも人気がある。特にGitとMercurialはもともとはLinux Kernelの開発のために作られた歴史からしても、ライバルと言える関係だ。LinuxやAndroid OSではGitが採用されたが、MercurialもOpenJDKやNetBeans、Xen、Python等で採用されている。 SVNから分散バージョン管理システムに移行を検討している所は多い。日本だと濱野氏がGitのメンテナをやっているせいかGitに人気が集中しているようだ。しかし気軽に分散バージョン管理システムを導入したいソフトウェア開発チームには、あえてMercurialを勧めたい。 1. SVNからMercurialに移行するべき8つの理由 取り扱いが楽で、今すぐ移行できる事がMercurialを導入するべき理由だが、もう少し
前提項目 redmineとgitosisは同じサーバで運用する OS: CentOS 5.5 ホスト名:example.jp redmineのインストールディレクトリ:/opt/redmine redmineはPassengerでApache上で動いている Apacheユーザ:apache Apacheのホームディレクトリ:/var/www gitosisデータディレクトリ: /var/lib/gitosis (gitosisのRPMパッケージインストール時に自動的に作成される) (root)#: サーバ上のrootコマンドプロンプト gitosisのインストール EPELをCentOSに追加 (root)# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm (roo
github使えばいいんだけどー内々のグループで使う場合、gitwebで公開したい。 てことで、gitosisとgitwebの連携についてメモっておく 環境はCentOS 5.6, epelレポジトリー こちらのサイトでは gitosisのリポジトリディレクトリ丸ごと公開する方法が載っているが・・・それではgitosis-admin.gitまで公開されてしまう。 参考:gitweb – K blog で、gitosisにそれ用の機能が有るのを発見 参考:gitosisを使ってみる – より良い環境を求めて が、安易にgroup以下にgitwebを書いたらだめだった。 下を見たらわかってもらえると思う。 [group pytestcode] writable = py-testcode members = tetsuya@nfs0.servers.local gitweb = yes
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く