タグ

studyとGitに関するraimon49のブックマーク (82)

  • SCMBootCamp in Tokyo 2 を振り返って - 彷徨えるフジワラ

    ※ 2011/11/27 追記あり 時間枠中は、Twitter のタイムラインを見ている暇が無かったので、togetter でのまとめを元に、落穂拾い的に tweet された質問/疑問に答えることに。 まとめて頂いた @shinyaa31( id:absj31 ) 氏に感謝!(※ @shinyaa31氏自身のまとめはこちら) そして、改めて主催の id:kyon_mm 氏に感謝! 基調講演枠での tweet 講演内容は好評だったようで一安心。 SCM ツール世代分類に関して: (@oota_ken) ClearCaseはClearCaseはClearCaseは まぁ多分、「ClearCase も忘れないであげてください」ニュアンスだとは思うけど、一応答えておく事に(笑)。 私自身、ClearCase を触ったことが無いので、『パターンによるソフトウェア構成管理』に記載された情報ベースで見る

    SCMBootCamp in Tokyo 2 を振り返って - 彷徨えるフジワラ
  • 分散リポジトリ型時代のソフトウェア構成管理

    正式には、 「ソフトウェア構成管理」 (Software Configuration Management: SCM) と言います。 「ラショナル統一プロセス」 (Rational Unified Process: RUP) では、 「構成および変更管理」 (Configuration and Change Management: CCM) などとも呼ばれます。 では「構成」とはなんでしょう?

    raimon49
    raimon49 2011/11/21
    シチュエーション別の分散リポジトリ開発レイアウトの紹介。
  • git-flow によるブランチの管理

    今回は分散バージョン管理システムgitと共に用いる「ブランチモデル」について紹介していただきます。gitを使ってみて、その高機能さをどう使えば良いか悩まれた方は、ぜひ稿をご一読ください。gitそのものの使い方については解説していませんので、その際には『 実用git 』などの書籍を参考にしてください。 git-flow は Vincent Driessen 氏によって書かれた A successful Git branching model (O-Show 氏による日語訳) というブランチモデルを補助するための git 拡張です。 git-flow を利用する前には、まずこの文章を一読することをおすすめします。 その骨子については、 Voluntas 氏のブログ が参考になります。 git を使うメリットの 1 つは、そのブランチモデルです。しかし gitを使っていると、その高い柔軟性か

    git-flow によるブランチの管理
    raimon49
    raimon49 2011/11/11
    メインラインモデルに近い固めの運用。機能追加とホットフィックスの例から。
  • 図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ

    git-merge の--ff, --no-ff, --squashの違いをまとめてみた。 git helpから引用 まずは、git helpを読みましょう git merge --helpから引用(抜粋) NAME git-merge - Join two or more development histories together SYNOPSIS git merge [-n] [--stat] [--no-commit] [--squash] [-s <strategy>] [-X <strategy-option>] [--[no-]rerere-autoupdate] [-m <msg>] <commit>... git merge <msg> HEAD <commit>... git merge --abort OPTIONS --ff, --no-ff Do not gene

    図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ
    raimon49
    raimon49 2011/10/26
    マージさせるトピックブランチの粒度から fast-forwardな関係の時、--ff(デフォルト)ではマージコミットが作られない。「トピックブランチがあった」情報を残したいときは--no-ff masterへの差分が1つにまとまるなら--squash
  • git-rebase を多用した開発の流れ - アジャイルSEを目指すブログ

    git-rebase を使った開発の流れが固まってきたので、ブログで晒してみます。 この呟きから日数が経っている理由は察してください。 とりあえず、マグナ・ゼロは2週して、黄金魔剣士は2回撃破しました。 まず初めに git-rebase に不慣れな方は真似しない方がいいです reflog でgit-rebase の失敗を戻せない人も真似しない方がいいです 無名ブランチに移動しても泣かないように 開発の流れ 前提 git-pull は使わず、git-fetch を使う 追跡ブランチでは作業をしない(必ずトピックブランチを作る) bashにgitのブランチ名を表示しておく(rebaseでコンフリクト起きるのが見えないと危険なので) 0. 作業準備 プロジェクトのディレクトリに移動する。 $ cd ~/Projects/FizzBuzz作業前にリモートリポジトリの変更を取得する。 $ git f

    git-rebase を多用した開発の流れ - アジャイルSEを目指すブログ
  • gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア

    以前gitで一度行った変更をなかったことにする方法4つを紹介しましたが、 日常的に git を使用していると他にも様々な 「なかったことにしたい」「元に戻したい」 という状況に遭遇します。 そのひとつひとつについて対処方法を紹介していきます。 目次 問題1: ライブラリの新機能を試すためにあれこれ適当なコードを書いてみた。でももう要らない。問題2: トピックブランチをマージしたけど実はまだ不完全だった。マージをやり直したい。問題3: リリース後に発覚したバグ。原因は30日前に自分が行ったコミットだった。なかったことにしたい。問題4: 新しいコミットしようとして間違えてgit commit –amendで書き換えてしまった。元に戻したい。問題5: 色々作業していたら作業ディレクトリの内容が混沌としてきた。一度綺麗な状態にしたい。問題6: 作業ディレクトリにゴミファイルが溜まってきた。一度綺麗

    gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア
    raimon49
    raimon49 2011/08/21
    git clean -nとgit clean -fは覚えておきたい。Mercurial編も楽しみ。
  • SCM Boot Camp

    This document summarizes the key differences between centralized version control systems (CVS) and distributed version control systems (DVCS). It explains that DVCS allow for non-linear development with features like rebasing and branching that are not possible in CVS. Examples of DVCS like Git and Mercurial are given. The document also discusses how to migrate from CVS to a DVCS and advantages of

    SCM Boot Camp
  • git reset についてもまとめてみる - murankの日記

    前回 git diff を図に書いてみたところ、自分の中で意外と整理できたので、これまたなんとなく使っていた git reset についてもまとめてみた。 とりあえず結論を先にまとめよう。 git reset とは? HEAD の位置を変更するコマンド。 オプションによってインデックス、ワーキングツリーの内容も変更できる。 git reset のオプションは? --soft、--mixed(オプションなしと同等)、--hard オプションがあり、影響度の小さい順に以下のようになる。 --soft HEAD の位置のみを変更する。インデックス、ワーキングツリーには影響なし。 --mixed (またはオプションなし) HEAD の位置とインデックスを変更する。ワーキングツリーには影響なし。 --hard HEADの位置、インデックス、ワーキングツリーをすべて変更する。 さて、git reset

    git reset についてもまとめてみる - murankの日記
    raimon49
    raimon49 2011/07/31
    --soft、--mixed(オプションなしと同等)、--hardそれぞれの図解
  • gitでインデント量以外の変更点を表示する | Webシステム開発/教育ソリューションのタイムインターメディア

    問題 バグフィックスなりリファクタリングなり何かをするため、 コード中の複数のブロックのインデントを変更するということは少なくありません。 例えば以下のようなコードがあるとしましょう: private void UpdateData() { var db = GetDatabaseConnection(); data1.UpdateSomething(); data2.UpdateSomething(); data3.UpdateSomething(); data1.Save(db); data2.Save(db); data3.Save(db); } このコードは一連のデータを更新してデータベースに保存しています。 しかしこの手の更新はデータの一貫性を保証するためにトランザクション内で実行されなければなりません。 という訳でこのコードは以下のように修正されるべきです: private v

    gitでインデント量以外の変更点を表示する | Webシステム開発/教育ソリューションのタイムインターメディア
    raimon49
    raimon49 2011/06/14
    >git diff -b または git diff --ignore-space-change / これは知らなかった! すごく便利だ。補足も要参照。
  • 【翻訳】Gitをボトムアップから理解する

    John Wiegleyさんの "Git from the bottom up" を翻訳しました。 元PDFはこちらからダウンロードできます: http://newartisans.com/2008/04/git-from-the-bottom-up/ 元記事のライセンスがクリエイティブコモンズのBY-SAであったため、この翻訳もBY-SAとなります。 ライセンスを守って自由にご利用ください。(詳しくは記事内の最初にも書いてあります) 翻訳ミスの指摘や改善の提案等があればブログコメントやTwitter(@oshow)などで遠慮なくどうぞ。 Git をボトムアップから理解する Wed, 2 Dec 2009 by John Wiegley 私が Git を理解しようと調査した時、高級なコマンドの視点から眺めるよりボトムアップ式に理解することが役立った。そしてボトムアップ視点で見る Git

    【翻訳】Gitをボトムアップから理解する
    raimon49
    raimon49 2011/05/19
    .git以下を意識して理解する。コミットの色々な別名, 強力(すぎる)rebase, 3種類の振る舞いを持ち破壊的操作もできてしまうresetの危険性, stashで良い慣習を。
  • もっとよいGitチートシート - 西尾泰和のはてなダイアリー

    世の中にGitのチートシートはいくつかあるけど「Gitを知らない人に渡して最初に読んでもらうのに適したもの」が見つからない。チートシートじゃなくてチュートリアルと呼ぶべきかもしれないけど、とにかく印刷してA4で1枚になるくらいの資料が必要だ。Gitに触れた技術者が軒並み同じ落とし穴でコケるのは正しい状態ではない。「Gitには、indexっていう『コミットする前にワークツリーで行った変更のうちのどの部分をコミットするか整理するための場所』があるんだよ」とか「git revertはsvn revertと違っていきなりリポジトリに変更を加えるから気をつけて」とか最初に言ってもらえればもっとスムーズに進めたはずだ。 というわけでどういうチートシートが必要かに関して考えてみる。 登場人物 http://www.ndpsoftware.com/git-cheatsheet.html このチートシートが

    もっとよいGitチートシート - 西尾泰和のはてなダイアリー
    raimon49
    raimon49 2011/04/21
    >Gitに触れた技術者が軒並み同じ落とし穴でコケるのは正しい状態ではない。「Gitには、indexっていう『コミットする前にワークツリーで行った変更のうちのどの部分をコミットするか整理するための場所』があるんだよ」
  • TDD Boot Camp のお題を C# と Git でやってみた - 予定は未定Blog版

    自分で考えたお題を自分で解くとかそれなんてマッチポンプ・・・ 打ち上げ終了後のホテルと、翌日の帰りの新幹線の中で書いたコードを順番に追ってみます。 準備するものは Git で、あるといいものは Visual Studio 2010 と NUnit です。 まぁ、割と小さいコード (テストを含めても 300 行もない) だし C# を知らない人でもそれなりに雰囲気は掴めると思います。 あ、このエントリかなり長いです。 準備 Windows の場合、Git Bash を開いて、適当なフォルダに移動して git clone git://github.com/bleis-tift/MotsunabeZombieProject.git cd MotsunabeZombieProjectとしてください。 MotsunabeZombieProject というフォルダができて、その中に Git のリポジト

    TDD Boot Camp のお題を C# と Git でやってみた - 予定は未定Blog版
  • モデルから知るGit

    Git is a distributed version control system invented by Linus Torvalds that stores data in a file system made up of snapshots of a project over time. It allows developers to work collaboratively by tracking changes to files and coordinating code changes between team members or branches of development. Git uses a client-server model with local repositories that can be pushed to and pulled from remo

    モデルから知るGit
    raimon49
    raimon49 2011/03/11
    >コミットへのrefは、全て.git/refsにある
  • svn,git,hgコマンドのaliasあれこれ - maru.cc@はてな

    バージョン管理システム使ってますか? 最近、会社のリポジトリをSubversionからGitにがつがつ移行してます。Gitのブランチを使った Git Flowの考え方を浸透させるべく、反映ツールのGit対応などしております。 それと同時に、MyBikeJPプロジェクトは、Mercurialで管理を行っています。 微妙に似ているけど違う gitコマンドと hgコマンドに混乱しまくりで、先日、マージにミスって @key3 さんに迷惑かけちゃいました。 ということで、環境差異を吸収し、さらにミスが減って楽になるような aliasやシェル関数を設定しました。 ちなみに zshです。 Subversion svnでは、元々、.zshrc を id:sotarok さんのをベースにしていた関係でショートカットを知りました。 http://trac.nequal.jp/browser/public/do

    svn,git,hgコマンドのaliasあれこれ - maru.cc@はてな
    raimon49
    raimon49 2011/01/24
    stgは時間かかりそうだけど一発で確認できるのは良いなぁ。
  • 【翻訳】Gitのコミットメッセージに関する注意点

    Tim Popeさんの "A Note About Git Commit Messages" を翻訳しました。 元記事はこちら: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html (翻訳の公開は人より許諾済みです) 翻訳の間違い等があればブログコメントやTwitter(@oshow)などで遠慮無くご指摘ください。 Gitのコミットメッセージ に関する注意点 良い形式のコミットメッセージを書くということについて、時間を取って説こうと思う。私が考えるに、コミットメッセージ形式に関するベストプラクティスは、Git を素晴らしくしてくれる小さなディティールの一つだ。rails.git への最初のコミットのいくつかは、(折り返しのない)長文による多様なコミットメッセージを含んでおり、なぜこれがはっきり言ってお粗

    raimon49
    raimon49 2011/01/18
    サマリー, 現在形を使う, ページャの折り返しを意識する Gitに限らずVCS全般で心掛けたいプラクティス
  • ファイルシステムとしての Git - 言語ゲーム

    Git のコマンド体系は全く歴史に学ばず後世に禍根を残す酷いデザインだが、どういうわけか内部構造は大変素晴らしい。特にファイル構造を一旦キーバリュー式データストアに保存するというのは是非参考にしたいアイデアなので調べてみました。 Git 内部データストアの基機能は、ファイル名を使わず中身だけを保存する事です。ファイル名が無くて後からどうやって保存した中身を取り出すかというと、保存時に SHA-1 という文字列が発行されるのでそれを鍵に取り出します。それでは試しにやってみます。まず準備として新しい Git レポジトリを作ります。 $ mkdir test $ cd test $ git init Initialized empty Git repository in /Users/takashi/tmp/test/.git/ blob 次に、適当な文字列を保存します。 $ echo '適当

    ファイルシステムとしての Git - 言語ゲーム
    raimon49
    raimon49 2011/01/06
    >Git のコマンド体系は全く歴史に学ばず後世に禍根を残す酷いデザインだが、どういうわけか内部構造は大変素晴らしい。特にファイル構造を一旦キーバリュー式データストアに保存するというのは是非参考にしたいアイ
  • 操作体系から見る、GitとMercurialの8つの違い

    つい先日、SVNからMercurialに移行するべき8つの理由をまとめたが、Twitterはてなブックマークのコメントを見ていると、同じ分散バージョン管理システムとしてGitとMercurialとの比較に関心が高く、Windowsでの動作でMercurialを評価する人が多いように感じられた。 それも一つの側面で間違いでは無いのだが、日々の開発作業で使っていくと、むしろ操作体系の方が気になるものだ。GitとMercurialの両方を使う機会があったので、操作体系の面で気づいた違いを列挙した上で、Gitに対するMercurialの優位点を考察してみる。 1. 管理対象ファイルの指定方法 .gitignoreや.hgignoreで管理外のファイル名を指定でき、正規表現も使える点は良く似ている。 しかしGitはcommit前にコミット対象を毎回git-addで指定するが、Mercurialは一

    操作体系から見る、GitとMercurialの8つの違い
    raimon49
    raimon49 2011/01/02
    >Gitのブランチは消すことができるが、Mercurialのブランチは消すことができない。Mercurialのブランチはchangesetの別名なので、消すとその子孫のchangesetに影響が出る可能性があるためだと考えられる。 / Mercurialで名前付ブラン
  • 古いコミットを書き換える: 歴史修正主義者のための git rebase -i 入門 - 学習する機械、学習しない人間

    直前のコミットをやり直したいときは、git commit --amend を使うと可能だ。そして、さらに昔のコミットをやり直す(書き換える)ときは、git rebase -i を使う。 git rebase -i を使うと、引数にとったコミット以降のコミット系列に対して、コミットの書き換え、削除、統合を行うことができる。 次の課題をこなすことを目標としながら、git rebase -i の動作を追っていこう。 課題「最新のものから古いほうへ3つ分のコミット(HEAD, HEAD~1, HEAD~2)のログメッセージを書き換えたい」 git rebase -i の起動 まず、変更したいコミットで一番古いものより一つ古いものを引数にして、git rebase -i を実行する。この場合は HEAD~3 である。 $ git rebase -i HEAD~3 すると、エディタが rebase コ

    古いコミットを書き換える: 歴史修正主義者のための git rebase -i 入門 - 学習する機械、学習しない人間
    raimon49
    raimon49 2010/11/18
    git rebase -i -> git commit --amend -> git rebase --continue
  • 社内勉強会資料「Git早わかり」 - Pixel Pedals of Tomakomai

    YAPC前のことなのですが、id:perlcodesampleさんとちょっと縁があり、「Mojoliciousの話聞きたい」と無茶ぶりをしてみたら、なんと快諾して下さいました。そこで先日弊社にて社内勉強会を開催し、お招きしてトークをして頂きました。id:perlcodesampleさん、どうもありがとうございました! 話して頂くだけではなんなので、弊社からもトークを行いました。その際の発表資料を貼っておきます。早わかりってタイトルは嘘で、Gitリポジトリのモデルについて主に話しました。 Git入門View more presentations from hiratara.

    社内勉強会資料「Git早わかり」 - Pixel Pedals of Tomakomai
    raimon49
    raimon49 2010/10/22
    リポジトリモデル 違い
  • http://myscript.zouri.jp/git/index.htm

    raimon49
    raimon49 2010/09/08
    経験則集。実践的でためになる。