タグ

dvcsに関するlizyのブックマーク (201)

  • git mergeとgit pullのデフォルト挙動を設定できるようになってるGit | Act as Professional

    Gitもいろいろ増えているんだと改めた@HIROCASTERでございませう。 過去のGitのバージョンでは、設定できないと言われていたことについて、最近のGitでは設定できるようになっています。(と、言っても何ヶ月も前に追加されている内容ですが…) そのなかでも「これが欲しかったんだ!」と思われる2点について取り上げます。 git merge –no-ff git mergeをおこなう際には –no-ff をつけることによって、トピックブランチでおこなわれたコミットが明確にわかるようにするかと思います。 以下の図だと、Topic-bは別ブランチでコミットされましたが、masterへマージする際に ff だったために履歴を見ると別ブランチでコミットされたかどうかが判断できません。 一方、Topic-CはTopic-B同様に別ブランチでコミットされましたが、masterへmergeされる際に

    git mergeとgit pullのデフォルト挙動を設定できるようになってるGit | Act as Professional
  • git merge or rebase, ff or no-ff

    Kazuho Oku @kazuho バージョン管理システムの目的は変更履歴を管理することなんだから、git rebase とか履歴を改変するコマンドは言うまでもなくダークサイド 2012-11-09 16:58:32

    git merge or rebase, ff or no-ff
    lizy
    lizy 2012/11/20
  • Git pullを使うべきでない3つの理由 · DQNEO日記

    git pullは使わなくてもよい 初心者はgit pullを使わない方がよい 我々ソフトウェアエンジニアは勉強が大好きなので、コマンドがあるとそれを勉強して使いこなさなければいけないと考えがちですが、ときには「覚えない、使わない」という発想も大事なのではないでしょうか。 以下にその理由をのべます。 git pullは使う必要がない git pullを使わないとできないこと、というのはありません。 使わなくても全然困りません。 git fetchとgit mergeとgit rebaseだけですべての用は足せます。 私はチーム開発でGit格的に使い始めて数か月経ちますが、普段の作業でgit pullを使ったことはないしそれで困ったこともありません。 git pullを使わなければ、余計な落とし穴に落ちない git pullには落とし穴があります。 初心者はたいていその穴に落ちます。 「

    lizy
    lizy 2012/11/15
  • 仕事で使ってる巨大SVNレポジトリをGithubに移管するためにやったことまとめ · DQNEO日記

    動機 Subversionで困ってない ぶっちゃけSubversionで全然困っていませんでした。 コードレビューはちゃんとやっていたし、マージ・ブランチングも自作シェルスクリプトのおかげてスムーズにやれていました。 よく「Gitはマージが賢い、ブランチ作成が一瞬でできる」とかいわれますが、Subversionだってちゃんと使えばコンフリクトなんかめったに起きないし、ブランチ管理・マージだって全然めんどくさくない。 特にver1.7からはサーバもクライアントも大幅に高速化されたし、.svnディレクトリが.gitみたいに1個になったし、rebaseみたいなことだってできる。(sync merge & reintegrate) ただ、世の中が一斉にGitにシフトしている中でいつまでもSubversionを使っててよいのかという不安がありました。 また、月から金までSubversionにどっぷり

  • 引数なしのgit pushは危険なので気をつけましょう · DQNEO日記

    絨毯爆撃pushの例 いまmasterブランチに、未プッシュのコミットがあるとします。 ここで、新たにbr1ブランチを作ってチェックアウトします。 $ git checkout -b br1 master $ git branch * br1 master br1ブランチでコミットを作ります。 echo hello >> hello.txt git add . git ci -m "add file" 引数なしでプッシュします。 git push すると、どこに何がpushされると思いますか? 実は、master -> masterにpushされます。 masterがまだpushできる状態でない場合、これはかなり痛い。すごく痛い。頭が頭痛でおなかが腹痛。 しかもpushしたかった当のbr1ブランチはpushされないというオチ。(リモートにbr1ブランチがない限りは) この挙動は大半のユーザ

  • Gitによるバージョン管理入門 for windows

    はじめに もうだいぶ前に、当時主流だったバージョン管理システムである、CVSを研究して開発に使用したことがあります。 周りに知っている人がいなかったので、ネットで調べたり、を買ってきて読んで勉強したりましたが、最初のうちは、ぜんぜん分からなくて、かなり苦労しました。 今回、Gitについて調べていて、やはり同じように、はじめは、ぜんぜん分からない状態が続きました。 CVSの時も、今回のGitの時も、「ううん、僕にはバージョン管理を理解する才能が欠落しているのだろうか? もうやめちゃおうか」とも思ったのですが、「えいくそ!」と何とかがんばって続けて、 最終的には理解できました。 この2つのバージョン管理システムの研究で苦労した経験から、 なぜ最初は全然理解できなかったのか、その理由が分かりました。 皆さんがコンピュータのソフトで分からないときは「こんなことがしたい」と思いながら ヘルプを見た

    lizy
    lizy 2012/09/28
  • SubversionとGitでリポジトリ間を同期させるツール「SubGit 1.0」 | OSDN Magazine

    チェコTMate Softwareは9月24日、SubversionからGitへのマイグレーションを容易にするツール「SubGit 1.0」を公開した。SubversionリポジトリとGitリポジトリを双方向にレプリケーションする機能を持ち、既存のSubversion環境を変更なしにGitからアクセス可能にするという。 SubGitJavaで実装されたツールで、SubversionレポジトリをGitリポジトリにマイグレーションする機能を持つ。また、SubversionとGitを併用するための同期機能も備えている。Gitには同様の機能である「Git-Svn」が含まれているが、これと比べた優位点として、レポジトリのクローンが不要な点、Gitレポジトリに対してコミットでき両者間の変換は最小限で済む点、SubversionとGitの両方の機能をすべて利用できる点、さまざまなツールを利用できる点な

    SubversionとGitでリポジトリ間を同期させるツール「SubGit 1.0」 | OSDN Magazine
  • 分散バージョン管理システムは誤解されやすいイノベーション(ジョエルも言っている) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    2009年6月12日に、僕は分散バージョン管理システムMercurialについて短い記事を書いて、そこで次のような言ってます。 実は僕は、分散バージョン管理という発想と仕掛けを最初はまったく理解できず、「エエーッ?なんだそれ」「そんなんでうまくいくのかよ?」とかグダグダ言っていたのですが、いったん使い始めればラクチンラクチン。 要するに、最初は誤解に基づき否定的だったってことね。僕と同じような誤解をする人がいるような気はしたのですが、あまりうまく解説できそうにないので*1: 「四の五の言ってないで、使ってミソ」ってことです。 最近になって、ジョエル・スポルスキ(Joel Spolsky / 青木靖 訳)の「分散バージョン管理で間違いないって、ベイビー」という記事を目にしました。2010年3月17日に書かれた記事です。 なんと、あのジョエル・スポルスキも最初は誤解に基づき否定的だったらしいで

    分散バージョン管理システムは誤解されやすいイノベーション(ジョエルも言っている) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • エンタープライズ分野での分散バージョン管理システム

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    エンタープライズ分野での分散バージョン管理システム
    lizy
    lizy 2012/08/08
  • BitbucketのプライベートリポジトリをJenkinsからSSHでクローンする - 放牧日記

    仕事でBitbucketつかってますか? 僕はつかってます。 Bitbucketにリポジトリを作成して継続的インテグレーションを行うときに困るのがプライベートリポジトリのクローンです。Jenkinsからクローンできないとまずい。 この問題を解決するために、以前は専用のアカウントを作成してたりして対処していました。*1。面倒ですね。 最近この問題を解決するためにDeployment Keysという機能がサポートされました*2。このDeployment Keysの使い方を簡単に解説したいと思います。 Jenkins用の鍵を作成 Jenkinsの実行ユーザでsshの鍵を作成します。yumやapt-getでインストールしている場合は、jenkinsユーザが追加されていると思います。sudoして鍵を作成します。 $ sudo su - jenkins # 鍵を作成 sudoしたくない場合、できない場

    BitbucketのプライベートリポジトリをJenkinsからSSHでクローンする - 放牧日記
  • サル先生のGit入門〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】

    ようこそ、サル先生のGit入門へ。 Gitをつかってバージョン管理ができるようになるために一緒に勉強していきましょう! コースは4つ。Git初心者の方は「入門編」からどうぞ。Gitを使った事がある方は「発展編」がおすすめです。さらに「プルリクエスト編」では、コードレビューする文化をチームに根付かせましょう。 「あれ?何だっけ…?」という時は「逆引きGit」で調べて見てくださいね。

    サル先生のGit入門〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】
  • LDAP/ADとの認証連携もできるGit/Hg管理·RhodeCode MOONGIFT

    RhodeCodeはGit/Hgに対応したリポジトリ/プロジェクト管理システムです。 最近流行のVCSと言えばGitとHgをはじめとする分散型バージョン管理ではないでしょうか。企業内でこれらのリポジトリを使っているならその管理に利用したいのがRhodeCodeです。 プロジェクト一覧です。 一つのプロジェクトを表示しました。cloneするURLやコミットログも表示されています。 コミットやマージの状態がビジュアル化されています。 タグ一覧です。 コミットの内容です。 別なリポジトリです。こちらはGitです。 コミットログを見ると差分が確認できます。 RhodeCodeはリポジトリのPull/Pushサーバになり、コードレビューも行えます。さらに全文検索を持っています。企業用途に嬉しいのがLDAPやActiveDirectoryを使った認証に対応していることではないでしょうか。APIもあり、

    LDAP/ADとの認証連携もできるGit/Hg管理·RhodeCode MOONGIFT
  • 図解 Git

    もし図の表示がおかしかったら、このページの SVGでないバージョンを試して下さい。 SVG の画像処理を中止しています。 (SVG の画像処理を再開) このページのオリジナルは、Mark Lodato さんが執筆した A Visual Git Referenceです。 このページでは、よく使われる git のコマンドを簡潔に図を用いて説明します。 git について少し知識があるなら、このページはその知識を整理するのに役立つかもしれません。このページがどのようにして作られたのか興味があるなら、私のGitHub リポジトリを見て下さい。(日語訳の GitHub リポジトリ) 内容 基的な使い方 凡例 コマンドの詳細 Diff Commit Checkout 分離HEADでの commit Reset Merge Cherry Pick Rebase 技術メモ 基的な使い方 上記4つのコマ

  • 分散バージョン管理はバージョンではなくリビジョンを管理する - プログラマの思索

    InfoQの分散バージョン管理の記事を読んだ後に、もう一度、JoelがMercurialについて書かれた記事を再読して、ようやく分散バージョン管理が従来のバージョン管理ツールと何が違うのか分かったのでメモ。 ラフなメモ書き。 殴り書きの部分は後で直す。 【元ネタ】 分散バージョン管理で間違いないって、ベイビー - The Joel on Software Translation Project JoelもMercurialを使っている: プログラマの思索 InfoQ: エンタープライズ分野での分散バージョン管理システム 分散バージョン管理の可能性: プログラマの思索 (前略) 分散バージョン管理で実際のところ一番重要なのは、「分散」という部分ではないのだ。 重要なのは、このシステムが「バージョン」ではなく「変更」(注釈:リビジョン)で物事を捉えているということだ。 (中略) Subvers

    分散バージョン管理はバージョンではなくリビジョンを管理する - プログラマの思索
    lizy
    lizy 2012/06/25
    バージョンとリビジョンの違いがよく分からず
  • 分散バージョン管理の可能性 - プログラマの思索

    InfoQに分散バージョン管理の可能性の記事があったのでメモ。 ラフなメモ書き。 【元ネタ】 InfoQ: エンタープライズ分野での分散バージョン管理システム (引用開始) DVCSは速度を重視して設計されている。新しい実装方式、新しい技術、苦労した獲得した知識の結集であり、前世代のSCMよりも高速に動作する。ローカルにリポジトリを持てるから速いというだけでなく、従来のSCMと同様の条件でも速い。また、ブランチ作成も得意でマージ機能も優れている。90年代後半から2000年代前半ではブランチ作成とマージは"悪"だった。その当時の主流のバージョン管理システムのブランチ作成機能とマージ機能が貧弱だったからだ。処理が遅く、エラーが頻発していた。その結果、若い開発者はブランチ/マージ嫌いとして育ってしまった。DVCSは高速に動作するブランチ作成機能と当に使えるマージトラッキング機能を実装した。30

    分散バージョン管理の可能性 - プログラマの思索
    lizy
    lizy 2012/06/17
    最近はブランチをできるだけ作らないのがトレンド?継続的デリバリーも、できるだけブランチを作らずにtrunkだけでやろうという内容だったはず
  • gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア

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

    gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア
    lizy
    lizy 2012/06/15
  • tfnico.com - Git and Subversion

    There are many people who want to use Git, but are forced to stick with Subversion for various reasons. Git-svn gives us the opportunity to migrate away from Subversion, but setting up a two-way sync is less than trivial. On this page I've documented the best way I've found so far for how to live with Git and Subversion in parallel.

    tfnico.com - Git and Subversion
  • git-svn で branch を扱う - cooldaemonの備忘録

    一応、メモ。 branch ごと clone する SourceForge から kai を取得する例。 $ git svn clone https://kai.svn.sourceforge.net/svnroot/kai -T trunk -b branches -t tags branch が増えた場合 git svn rebase は、現在の作業 branch を更新するだけなので、下記のようにする。 $ git svn fetch svn これで、増えた branch を取得できる。末尾の "svn" オプションは、.git/config を参照の事。 branch の操作 まずは、リモート branch の確認 $ git branch -r cooldaemon_embed_tcp_server takemaru_config_get_list_of_keys trunk ロ

    git-svn で branch を扱う - cooldaemonの備忘録
  • git-svnの使い方を覚えた - idesaku blog

    分散SCMを使いたい!と思う今日この頃。 仕事ではSVN(Subversion)を使っているのだが、ちょっとしたお試し編集をするためにブランチを作ることに抵抗がある。ブランチは欲しい、大きめな変更をコミット無しで行いたくない、やはり少しずつコミットして進めていきたい。しかし、変更が全て記録されてしまうのがいただけない。ログが残るのは良いことなのだが、当に使うかどうか未知数な実験的プログラミングのログまで残したくない。使うと決まってから初めて残すようにしたいのだ。 すまん、これまで一緒に仕事をしてきた人々よ。俺はこれまで「ログが残って困ることがなんかある?いらなきゃ無視すればいいだけなんだから、気にするな。ブランチでもなんでもバンバン作ってしまえ!」とうそぶいてきているわけだが…ハッタリかましてました!当は俺も抵抗があるのだ。 そこで、分散SCMだ。さらにいうと、SVKがいまひとつ気に入

    git-svnの使い方を覚えた - idesaku blog
  • 【旧版】git入門 (全22回) - プログラミングならドットインストール

    旧版のレッスンは更新を終了しており、現状と異なる場合があります。サポートも終了しておりますので、最新版への移行をお願いします。

    【旧版】git入門 (全22回) - プログラミングならドットインストール