なぜGitはそんなに誇大宣伝されたのですか?…他の人はそうではありませんか?[閉まっている]


124

近年、Gitをめぐる誇大宣伝が大いに盛り上がりました。誰もがGitについて知っていますが、代替案については誰も知りません。

Mercurialのような他のものは見過ごされているようです。どちらも2005年にリリースされ、同様の機能を提供します。さらに、Mercurialは一般に使いやすく、より直感的で、長い間UIが優れていると考えられています。したがって、これは、特に分散バージョン管理が初めての人にとって、人気のある代替手段であると想定できます。しかし、かなり成功したGitとは異なり、ほとんどの人には知られていないようです。

この投稿のポイントは、この現象をよりよく理解しようとすることです。

どうしてGitはケーキのすべての部分を手に入れたのですか?彼らはどういうわけかより良いマーケティングを使用しましたか?それは、そのコミュニティがもっと... ahem ...「verbose」だからでしょうか?「Linus」の名前のせいですか?それはそのオタク的なイメージのためですか?

あなたの意見は何ですか?


63
あなたは、Linus Torvalds氏は、その人気のための唯一の理由であることについて、おそらく正しいです...
ロバートKoritnik

4
私は知らない、彼らはほぼ同じ量で私にさらされていると感じている...私はHgの前にgitについて聞いたことがありますが。しかし、そう、トーバルズは有名人なので、彼が関わっているものは何でも注目を集めそうです。
perp

13
私はGitHubのが好き...それがすべてです
CND

7
@jrwren、私はGit Mercurial 使用していないと言って、このコメントの前書きにします。Gitを学習し、すぐにMercurial(またはその逆)を学習する場合、そのうちの1人が学習に要する時間を短縮する可能性があります。時間のかからないものは、私が使いやすいと思うものです。Grokkingは通常、理解するのに時間がかかることを意味するため、使用が難しくなります。それが製品を悪化させると言っているわけではありません。より強力なツールのために急な学習曲線が必要な場合もありますが、使いやすさは確かに変わります。
zzzzBov

8
@MarkTrapp神、マーク!誰もが良い議論をしているように見えるので、あなたは一緒に来て、誰もがドアの外を警戒しなければなりませんでした。StackOverflowのような議論を許可するサイトを知っていたらと思います。
セオドアR.スミス

回答:


86

GitHubGitoriousなどのサービスが大きな要因だと思います。人々がどこかで自分のものをホストできることが重要であり、特にGitHubはそのための素晴らしいサービスです。

Mercurialの場合、DVCSが人気を博したとき、そのようなサービスはありませんでした(少なくとも私が知っていたサービスはありませんでした)。あなたは持っているのBitbucketを今、おそらく他の人が、しかし、GitHubには、それはよく知られているのです、それは良くなり、かなりの時間がありました。


これに加えて、いくつかの巨大なオープンソースプロジェクトがgitを使用しているので、どの種類の決定があなたに代わって行われます。私はgitを数回使用するように「強制」されました(たとえば、Androidの場合)が、MercurialまたはBazaarを使用することを強制されていません。また、gitは素晴らしいと思います:)
FeatureCreep

11
hgのGoogleコードとSourceForgeもあり
ます

7
Gitは、他のリポジトリを陰に置くGithubによって強化されています。Bitbucketにはいくつかの利点があります(無料のプライベートリポジトリ)が、UIはGithubと比較して貧弱です
iandotkelly

2
私はMercurialを単独で使用してGitHubと対話しています... hggitプラグイン(hg-git.github.com)を使用すると、ツールをコミュニティから切り離すことができます。しかし、コミュニティツールからではないかもしれません。
-bpanulla

1
CodePlexはMercurialもサポートしています。
グラントペイリン

86

これに対する多くの回答がありますが、それは著者が1つまたは他のSCMについて聞いたときの感情に依存しています。他の人は、それはすべて運が良かったと言います。運は歴史にさかのぼることができると思います。

歴史についてお話します。

GitMercurialは、同じ問題を解決するために同時に作成されました。当時、Linuxカーネルは、3年間使用していた独自の分散SCMであるBitKeeperの使用をやめざるを得ませんでした。これは、BitKeeperの背後にある会社であるBitMoverのCEOであるLarry McVoyが、Linuxコミュニティ内の誰かがリバースエンジニアリングを行ったため、Linux開発者にソフトウェアを無料で提供することをやめたためです。

Linus Torvaldsは、すでに存在するものに不満を抱き、その後すぐにGitと呼ばれる新しいSCMに取り組み始めました。その後すぐに、Matt Mackallは同様の理由でMercurialプロジェクトを開始しました。

しばらくこれらのプロジェクトを個別に開発した後、Matt Mackallは彼のSCMの高度なバージョンを提示し、特定の方法でベンチマークを行い、Git(それ自体は数週間前でした)と比較しました。Linusはカーネル開発にGitの代わりにGit使用することを検討しましたが、Mercurialがリビジョンの変更を記録するためにチェンジセットを使用していることに気付いたときにアイデアを捨てました。彼は、それがBitKeeperの動作に近すぎることを恐れており、「BitKeeperクローンを作成した」と誰かに言わせるようなものは絶対に望んでいませんでした。

したがって、GitはMercurialの代わりにカーネル開発に使用されましたが、両方とも技術的に関連がありました。最終結果として、Gitは実際に使用されるように設計された場所で使用されることから始まりましたが、Mercurialは最初の大きなFOSS使用を見つけるほど速くはありませんでした。非常に優れたデザインに恵まれ、Matt Mackallの忍耐力のおかげで、最終的に有名になり、大きな現実のプロジェクトに使用されました。

今日、彼らは両方とも有名です。最も有名なものは言うことはできません。Google Codeは最近Gitを統合しましたが、長い間Mercurialを使用していました。多くの本当に大きくて有名なプロジェクトがどちらかを使用しています。

私が言いたいのは、あなたがプロジェクトを始めたまさにその理由が消えたとき、人気を得るのは難しいが、それでも実行可能であるということだと思います。

Bazaarは、GNUの世界で非常に有名なもう1つのSCMですが、GNUコミュニティを満足させることを目的として構築されたため、それ以外ではあまりありません。ソフトウェアは、多くの場合、クリエイターが行きたい場所に行き、それ以上は行きません。

一方、分散SCMは明確な勝者です。広く使用されている多くの非分散SCMは見当たりません。


5
この歴史に本当に感謝しています。
-jrwren

4
@TMNそうですね!実際、Andrew Tridgellのリバースエンジニアリングが明らかになり、Larry McVoyがBitKeeperのライセンスを変更したとき、Linus Torvaldsがそれを落とすことにした炎の戦争があり、交換を見つけるために1週間を与えました。当時、本当の競争相手はモノトーンでしたが、涙が出るほど遅かったです。多くの人が同時に代替品を作成し、誰もが新しいツールを使用して喜んでいた。Gitはまず1.0をヒットし、次にMercurialをヒットしたと思います。バザールは2年近くかかりました。
サディータイル

7
「広く使われている非分散型SCMはあまり見かけません。」それはあなたが業界のどこにいるかによります。Perforce、ClearCase、およびsvnは依然として非常に広く使用されていますが、オープンソースの世界ではそれほど多くありません(svnを除く)。ああ、はい、そしてVisual Source SafeとMS Teamは、Windowsショップにあります。
ボブマーフィー

13
「リバースエンジニアリング」とは、サーバーにtelnetし、「help」と入力することを意味します
代替案

3
私はこれをDVCSとCVCSの両方について一般的に言います:「すべてのソフトウェアはタオに参加しており、軽視されるべきではありません。」「レドモンドのソフトウェアを含めますか?」「ああ、まあ、時計を見てください。クラスは解雇されました。」
ボブマーフィー

77

ライナス・トーバルズ

LinusはGitの大提唱者であり、長年にわたってコアlinuxグループに大幅に昇格し、そこから成長しています。* nixコミュニティに対するLinusの影響が完全に原因だと思います。

個人的にはまだSubversionを使用していますが、それは実用性というよりは好みによるものです。


12
Linuxの大きな可視性ほど個人的にはLinusだとは思いません。DVCS(またはソフトウェア開発全般)についての予備知識のない人に、「それはLinuxカーネル」。
マイケルボルグワード

6
彼はそれの大きな提唱者であるだけでなく、 - 彼はそれの元のバージョンを作成したもので、彼はジュニオ・ハマーノにそれを引き渡さ前
マルコケッピ

44
何?Subversionを好むのはなぜですか?
コンフィギュレー

11
好みや実用性ではなく、習慣やinertia性からSubversionをまだ使用しているという意味ではないですか?私はまだそれを使用している理由です、と私はあまりにも、私たちの残りの部分のほとんどを疑う...
コーディグレー

7
@deadalnix:LinuxとLinuxには、他のどのオープンソースプロジェクトにも比類のない大声で叫ぶファンボーイがいるからです。彼らはGitにとって非常に効果的なストリートチームとして機能します。
トムアンダーソン

34

バージョン管理システムの通常の問題点は、ブランチのマージです。

ブランチで自由に仕事をするためには、それがどれほど苦痛であり、仕事をすることがどれほど重要であるかを理解するのにうまくいかないとき、あなたはそれを試した必要があります。

Linus Torvaldsがこれを正しく行うためにgitを書いたこと、そして1つの状況でgitを使って一度に12のブランチをマージしたことを知ると、これはgitが興味深いことを説得する説得力があります。

私は約1年前にhgとgitのどちらかを選択しなければならない状況にあり、上記のマージはgitを選択する際の重要な要素の1つでした。2つ目は、Eclipse組織がgitに切り替えたため、EclipseツールがJavaプロジェクトに適していることが期待されていました。Eclipse 3.7のリリースで、これが起こりました。これはおそらく6〜9ヶ月早くでした。

さまざまなニーズに対して、hgも同じように便利です。Sunは、非常に慎重な調査基づいてVCSを選択しました。ホワイトペーパーを見つけて、その理由を確認してください。


編集:注、Mercurialができないことを言っているのではなく、Eclipseを備えたJavaについてだけです-これが主な焦点です-市場力は現在、Windowsの下でもgitで最も強く、私たちは肩を立つ必要があります他人の足ではなく


5
+1それはすべてブランチにあります。この分析では、水銀と比較してgitのマージ力について説明します。
アメリオバスケスレイナ

19
@AmV:難読化されたURLを投稿しないでください。
コーディグレー


4
ここであなたの主張がわかるかどうかわかりません。あなたは彼らが同様に分岐に優れていると言っています(GitはMercurialができないことは何もしません)が、良い分岐が必要なため、Gitを選択しましたか?
11

8
GitがMercurialよりもマージの方が優れているという説得力のある例を見たことはありませんが、この回答にはありません。HgとSVNまたはCVSを混同しているようです。
アーロンノート

23

gitまたはmercurialの方が良い理由を言うのではなく、その人気がある唯一の理由を言うのではなく、コミュニティに焦点を当てます。

私がしたよう以前の強調表示、Gitのコミュニティは非常に騒々しいと傲慢です。ほとんどは、貴重なプログラムを積極的に擁護します。私が見たGit対Mercurial戦争のほとんどは、なぜ地球上の誰もが聖なるgitを使用していないのか疑問に思っていたgitの人々によって始められました。whygitisbetterthanx.comのようなサイトでは、導入部でこのar慢さを示しています。

私は誰もがこのように言っているわけではありませんが、ほとんどの場合、gitの人々、pro-gitのWebサイト、pro-gitのブログに出会ったとき、実行可能なDVCSとして提供されるのではなく、gitが喉に押し込まれているように感じましたシステム。


対照的に、他のDVCSコミュニティはそれほど大きくありません。「Whats the best DVCS?」を見るまで、Mercurialの存在を知りませんでした。SOに関する質問。gitはどこにでも表示されますが、他のDVCSを見つけるには時間がかかります。


16
他人を慢と呼ぶのは少し慢ではありませんか?

21
@Thorbjørn:そうです。私がそれをするときを除いて。それはちょうど正しいです。
トムアンダーソン

6
gitに対してかなりアレルギーになったと思います。whygitisbetterthanxの紹介とその内容の一部を読みました。ar慢で挑発的なものは何もありません。何かを促進することを意図したものが持つ通常のバイアスがあります。
back2dos

5
@ back2dos:「Gitはすべてのものより優れている」と主張する点でかなりpretty慢です。そして、その支持論拠のかなり大きな部分は間違っていて修正されていないか、取り消し線で消されていますが、それでも何らかの形で結論を変えることはありません。
11

5
@Agos:そして、そのほとんどはGitに固有のものではありません。彼らは他の製品を除外するためにゴールポスト動かすだけです。
アーロンノート

14

Mercurialは特に目立たないとは思いません。KilnはHg上に構築されており、EclipseやNetbeansなどのIDEでしばらくサポートされています。

私が話す開発者のほとんどは、Windowsのサポートが優れているため、Hgを好むようです。もし我々がLinux開発者なら、それは別の話かもしれません。

また、本当の「忘れられたDVCS」である「Bazaar」もありません。

確かに、Linusは非常にカリスマ的な男であり、アルファオタクはほとんど同等ではないため、多くの人々がGitに引き寄せられることに同意します。また、Gitの「創造神話」は、LinusがGitを作成するために6日間働き、7番目で休むことを非常に魅力的です-またはそのようなもの。製品に記憶に残るストーリーがあると、トラクションを獲得しやすくなります。


6
...完全に同意します:「バザール」は本当の「忘れられたDVCS」です。
-dagnelies

同意しますが、キル/ジョエルからのhgの露出は、linusからのgitの露出よりも新しいです。hgはキャッチアップをしています
jk。

2
実際にはかなりの数の「忘れられたDVCS」がありますが、それらの多くはおそらく「ロープロファイル」、「フォーカス」、または「ニッチ」としてよりよく説明されるでしょう。
ジョンゲインズジュニア

13

謙虚な意見ですが、2つのパラメーターがあるため、gitはこの誇大広告をすべて受け取る可能性があります。

  1. とても効率的です
  2. 使用するのは楽しいです(ある種の非常に具体的なコンピューター科学者の方法で)

さらに、gitはgithubのようなキラーアプリを入手し、非常に人気のあるプロジェクトがそれを使用することを決定しました。


4
1.一部の地域では水銀は非効率ですか?実際、長い間、httpよりも効率的であったため、先週発表されたgitサポートと比較して、2年以上前からgoogleコードに含まれていたため、httpでも最近同様に良好になりました。2. OK 3.同等bitbucket.orgあり
dagnelies

1
水銀は非効率的だったと言いましたか?私はそれを使ったことがないので、わかります。
ティボーJ

4
これは、全く私見少なくともない「他にはなかったが、」一部の問題に対処していない
JKを。

1
Mercurialは「空のフォルダ」をリポジトリに追加できません(これが修正された場合はdunno)が、DVCSを選択する必要が生じたとき、最終的にこの目的でgitを使用しました。空のフォルダーが必要でした。
マーティンマルコンチーニ

4
@MartínMarconcini「最終的にこの目的のためにgitに行きました」とはどういう意味ですか?gitは空のフォルダーもサポートしていません。
マックスナナシー

12

ここでは、「ベータオタクメディア」、「タイミングが合っている」、「リーダーに従う」の3つの要素があります。

Beta Geek Media

「こっけいな活動」の議論を得る多くのチャンネルがあります。彼らは確かに新しいバージョン管理システムの外観をカバーしますが、彼らはより多くのgitをカバーします。どうして?Linus Torvaldsが最初にそれを書いたので、それについて公に議論し、ビットキーパーに関するよく知られている問題の解決策としてそれを使用したからです。事実上、lkmlで火炎戦争が発生するたびに、ベータオタクメディアはそれについての記事を書きます。Gitの議論はlkmlで始まったため、他の選択肢よりも多くの記事を取り上げました。そして、スラッシュドットをバラエティーのように読むベータオタクはそれを食べました。その最終的な結果は、gitが水銀の10倍の記事を持っているということです。

時は正しい

多くの貢献者がいる大規模なオープンソースプロジェクトには、一元化されたソース管理に関する問題があります。オープンソースが成長し、プロジェクトが多くの貢献者を持つ可能性が高くなるにつれて、問題は悪化します。Linuxはおそらくこれに苦しんでいる最もよく知られたプロジェクトですが、他にもたくさんあります。多くのプロジェクトがこのポイントに到達したため、何らかの高度なVCSが必要でした。ここでは、Git、Mercurial、およびBazaarが大きな勝者でした。ArchとMonotoneは少し早すぎて、誇大広告の波に乗り遅れました。

リーダーに従う

大きなプロジェクトには、たとえ貢献しなくても、定期的にコードをチェックしてビルドするフォロワーがいます。フォロワーは、フォローしているプロジェクトを取得するために必要なツールに精通しているため、これらのツールはより多くの用途に使用できます。大きな3つのDVCSの「ビッグドロー」プロジェクトを見てみましょう。

  • Git:Linux、Perl、jQuery、Ruby on Rails、Eclipse、Gnome、KDE、QT、X
  • Mercurial:Java、Mozilla、Python
  • バザー:Ubuntu、Emacs

Gitにはそれを使用する「ビッグドロー」プロジェクトが多くあるため、gitに精通している人が増え、さらに多くのgitチュートリアルが作成されています。


1
あなたは正しいかもしれませんが、あなたの「大きな引き分け」リストは少し誤解を招く/偏っています。Bazaarのサイトを見ると、他の主要なプロジェクトがかなりリストされています。MySQL、Bugzilla、Debian、GNUはすべて非常に広く知られているプロジェクトのようです。Hgリストもかなり大きくなります。
11

@jalf:そのようなリストは主観的でなければなりません。私は自分のLinuxとGnomeをコンパイルしましたが、MozillaやEmacsをコンパイルしたことはありません。その他はまったく逆の方法かもしれません。問題は、「ソース管理からこのプロジェクトを何人の人々が引き出すか」です。現在のソースをプルするためにvcsをインストールするよう人々に促していると思われるものをリストしました。
ショーンマクミラン

けっこうだ。私はそれが客観的なリストの試みであると仮定しました(結局、各主要プロジェクトが各DVCSシステムを使用するリストは追跡するのに十分簡単でなければなりません):)
jalf

12

それは主に自己強化の誇大宣伝です。Gitは最も人気があるので、最も有名になり、人気が高まります。

Git、Hg、およびBzrはすべて完全に優れたDVCSシステムですが、恐ろしい数の人々がDVCSをGitと同一視しており、DVCSの素敵な機能はすべてGitに固有のものだと考えています。だから、彼らはGitリポジトリを使用し、Gitのをお勧めします、と(そうすることができますバザール)「それはタコのマージを行うことができますので、Gitは優れている」、またはそうである(「分散されるため、Gitが優れている」のようなものを言うのいずれかの名前の由来、DVCSは、 )、または「Gitの方がブランチとマージが簡単になるため、優れています」(これはすべてのDVCSに当てはまります)。

悲しいことに、選択肢にも多くの選択肢があると感じているため、DVCS == Gitと考えるだけでなく、人々が独自の強みでGitを選んだ方がいいと思います。

誰かが1つの特定のDVCSを指し示すことでDVCSがどれほど賢いかを発見すると、彼らはしばしば「DVCSは素晴らしい、あなたはそれらを使うべきだ」とは言わず、「私は DVCSについて学んだことは素晴らしいことです。あなたはそれを使うべきです。」


11

Github。Githubはソーシャルコーディングの先駆者です。バージョン管理を多くの注目を集めたソーシャルプラットフォームに変え、明らかにGitをサポートしているだけです。ソーシャルメディア=より多くの採用。Bitbucketは多くの新機能を獲得しつつありますが、ライバルになりそうです:)


7

実のところ、誇大広告はすべてのDSVCの組み合わせに関するものだと思います。

しかし、gitの支持者は、より声を出しており、多くの場合、コメントをより積極的にして、正直に言ってどこでもそれについて話したいと思っています。

Mercurialは広く使われていると思いますが、確かにgitと同じくらい頻繁に(おそらくMicrosoftや他の大企業が使用しています)、Mercurialを使用している人は、宗教の基盤となるものではなく、すぐに把握できるDSVCを最も頻繁に使用したいと考えています。したがって、彼らは、一部のgitユーザーのように積極的であるよりも、発言が少なく、議論においてより反応的です。

Bazaarについては、大規模な既知のプロジェクトはごくわずかであり、Canonical以外の大企業は使用していないため、あまり話題になりません。たとえば、Google(git、mercurial、svn)や大規模なオープンソースプロジェクトと比較すると、実際に話題になっていない理由がわかります。Fossilは開発者のニッチにとって興味深いものです。そのため、提供する機能(組み込みWiki、問題追跡、フォーラムなど)を検索する人だけが耳にするのは普通であり、素晴らしいことだと思います。

そうは言っても、私たちはゆっくりと誇大広告のサイクルを減らしつつあり、いくつかの異なるソリューションを使用した多くの開発者がニーズに合ったものを見つけ始めると思います。

また、Google Code HostingとSourceForgeはgitとmercurialの両方を許可するようになったため、GitHub機能のためにgitを選択したときよりもプロジェクト固有の選択になりつつあります。

本当の戦争はありません。ただ興味深いさまざまなツールがあります。


誇大広告が一般的にDVCSについてのものだったらいいのにと思いますが、私が見たことすべてから、誇大広告はGitについてであり、ほとんどの人はDVCSとGitは基本的に同じものだと思います。
11

6

この質問にはすでに多くの答えがあることは知っていますが、もう少し視点を追加できると感じました。

Bazaarはさまざまな目的で作成されて以来、ほとんど使用していました。私がそれを使った最大のことはAllTrayプロジェクトで、私は(現在)唯一の開発者およびメンテナーです。バザールはいいです。それはうまく機能し、私の邪魔にならないままで、ほとんどの場合、--helpページまたはmanページを見る必要はありません。とはいえ、いくつかの欠点があります。

  1. 間違いなくコアVCSの一部であるはずの多くの機能はそうではありません。履歴の二分法を実行する機能、ページャーを介して長い出力を実行する機能、または「同じ場所にある」ブランチ(たとえば、gitスタイルのリポジトリ)をプラグインとして提供します。
  2. 多くのプラグインはそれほど安定していません。たとえば、同じ場所に配置されたブランチ機能はサーバー側ではうまく機能しないようです(少なくとも、私はそれを機能させることがありませんでした。目の前にいると血まみれのものが見えます)。
  3. 「クローン」操作はありません。ブランチを1つずつプルします。新しいブランチを効率的にプルできるように、リポジトリが必要な場合は追加の作業を行う必要があります。
  4. 一部のプロジェクトでは、非常に遅くなります。いつか「bzr branch lp:mysql」を試してください。
  5. フックを強力にサポートしていません。フックを提供するbzrプラグインを作成できますが、サーバー側の任意のフックスクリプトを使用する標準的な方法はありません。

私は最近AllTray開発のためにgitに切り替えましたが、すべてのプロジェクトをgitに移行することをすぐに検討しいます。ロープを知るのに費やした時間はもう少しありますが、それだけの価値があるようです。私が気づいたいくつかのこと:

  1. git clone は比較的高速な操作であり、複製したリポジトリに存在するすべてのブランチに関する情報を提供します。
  2. 追加のリモートリポジトリを追加するのは簡単です。したがって、必要に応じて、複数のブランチを持つ多くの異なるリポジトリを追跡できます。
  3. プロGitの本はあるオンラインで利用可能の電子書籍リーダーを含めて、複数のフォーマットでのデバイス-、それが難しいの読み取りではありません。
  4. gitはBazaarよりもはるかに簡単に拡張でき、特定のAPIを使用してそれを行う必要はありません。(注:これは、長所と短所の両方です。)
  5. gitにはバイセクションが組み込まれているため、この機能の有用性を十分に強調することはできません。
  6. GitHubはかなりいいです。
  7. gitosisシステムもかなりいいです。Bazaarのプラグインとして以外にそれをどのように実装するのかさえ分かりませんし、それがどこまでも効率的であるとは想像できません。

簡単に言えば、私はbzrを非常に長い間使用していますが、gitはすぐにその素晴らしさを証明しています。


5

gitを使用すると、開発時に常に同じローカルディレクトリに留まり、git checkout branchnameブランチを切り替えるだけです(常に「軽量」機能ブランチを使用するため、これは私にとって非常に重要な機能です)。

Mercurialのドキュメントとチュートリアルを見ると、開発のさまざまなブランチに対処するための好ましい方法は、クローンを作成して新しいリポジトリを作成することです。このチュートリアルは一例です。

Mercurialでもgitと同じことができると思いますが、何らかの理由で、Mercurialのドキュメント(私が読んだこと)には、リポジトリクローンを作成することでほとんど常に分岐が表示されます。

(私は毎日gitを使用しています。mercurialの経験がほとんどないので、それを使っていくつかのチュートリアルを行いました)


2
hgでは常に「名前付き」ブランチを使用しました。それらをうまくサポートします。hg branch foo、その後hg up foo...ブランチクローンには、通常の開発にはいくつかの強力な弱点があります。
ポールネイサン

うーん、あなたはGitがHgよりも優れていると言っているのです。なぜなら、Hgはあなたが関心を持っている機能をサポートしているが、Hgコミュニティは代替アプローチが優れていると考えているからですか?
11

1
1:私は疑問に思う:なぜHgドキュメンテーションの「クローニングによる分岐」に焦点を合わせているのか(例えば、hgbook.red-bean.com / read / a-tour-of- mercurial -the-basics.htmlおよびmercurial.selenicを参照)。 com / guide)?私には、ブランチごとに1つのリポジトリがあるのは面倒です。2:私はgitの方が良いと言っているのではなく、私の答えは、私(Hg初心者)にとっては両者の違いのように見える問題についての観察です。Hgは「同じリポジトリ内のブランチ」もサポートしているため、違いは技術的なものよりも文化的なもののようです。
codeape

3
Mercurialは、オンラインで古くなった多くの情報に悩まされています。それの多くはgitを使用し、mercurialの機能の進化に合わせて最新の状態を保っていなかった人々によって広められました。クローンリポジトリを好む古い理由のほとんどは、Mercurialのモダンバージョンには適用されなくなりました(名前付きブランチは今すぐ閉じることができ、必要に応じてgitブランチと同様の使用パターンを提供するブックマークシステムがあります)。
スティーブンM.レッド

4

私はこの数週間でこのような暴言をいくつ見たのか分かりませんが、彼らはみな、MercurialやBazaarがGitより客観的に優れているという事実と考えているようです。ユーザビリティは共通のテーマのようです。はい、Gitの学習はCVSとSubversionを使用した後は驚くほど困難でしたが、この時点では、別のパラダイムシフトを構成しない限り、Gitを他のVCSと交換したくありません。また、機能の表を参照しても、柔軟性、拡張性、安全性、または労力の少なさについてはほとんど説明しません。たとえば、デフォルトで git-diffは色とポケットベルを使用します。確かに私は同じdiff ... | colordiff | less -Rか何かを得ることができますが、一方が他方より優れている理由は明らかです。


だから、あなたが切り替えるべきだという議論はないと思う-明らかに、あなたが既に知っているツールを使用することは、他のツールがどれほど簡単であっても、別のツールに切り替えるより簡単です。DVCSの支持者は、BazaarやMercurialの代わりにgitを使用することで、巨額を逃していると本当に主張できるとは思いません。
ZoFreX

3

公平を期すために、Git対Mercurialの支持者は、Git対Centralizedの支持者と比較して、ごくわずかであると思います。ただし、理由は簡単に要約できます。

Gitはプログラマ向けのバージョン管理です。Mercurialは企業向けのバージョン管理です。集中化は、特にパーソナルコンピュータ革命の前に設計されたものであることを考えると、バージョン管理を考案するのに十分な最初の試みでした。

プログラマーにとってのバージョン管理とは、一般的にプログラマーは学習の容易さよりも柔軟性を好むということです。結局のところ、私たちは何年もかけて難解な言語を学び、訓練されていない人ができないことをコンピュータに実行させる柔軟性を持たせるつもりです。Gitを使用すると、プログラマは自由に使用できますが、その柔軟性を安全に使用する方法を習得するには時間がかかります。ポリシーを実施するために制限を設けることができますが、そのままでは実現しません。私が言ったのしやすさに注意してください学習ではなく、のしやすさ使用。一度学習すれば、gitは他のVCS と同じくらい簡単に使用でき、速度と機能が向上するため、多くの場合より簡単になります。

プログラマーの中には、自分がやりたいことを十分に学んでから、それを行う新しい方法を習得することに抵抗する人もいます。企業はこれらの人々の多くを雇用して雇用しているため、使用するツールに変更を加えてある程度の親しみを持たせたいと考えています。企業はまた、プログラマーに仕事をするのに十分な柔軟性を持たせることを望んでいますが、トレーニングや初期移行を困難にするほどではありません。これがMercurialが収まる場所です。Gitのほとんどの機能を備えていますが、移行パスはやや簡単です。

gitは、誇大広告、またはLinusの支持のために人気があると言うのは公平ではないと思います。それはおそらくそれを試みている多くの人々の説明になりますが、彼らはそれを使い続け、それを促進します。




1

私は最近、個人プロジェクト用のバージョン管理システムを探していたので、それらの多くを試しました。私はコマンドラインについては事実上読み書きができません。GUIは利用できますが、Gitはコマンドラインを介して使用することを意図していたため、少しheしました。正直なところ、それはとんでもないほど簡単に手に入れることができ、本当に楽しんでいます。ドキュメンテーションは、新しいテクノロジーの採用における大きな要因であり、Gitには、明確で入手可能な途方もなく単純なドキュメンテーションがたくさんあります。SVNやBazaarなどの他の選択肢は素晴らしく、Gitほど簡単ではありませんでした。Githubも大きな要因です。Githubは現在、オープンソースの動きの中心になっているからです。コードとプロジェクトを交換するための(皮肉なことに)一元化された場所を持つことは、それ自体がゲームチェンジャーです。


1

ちょうど私の2¢-radtool言語やアカデミックな高レベル言語ではなくCで書かれているため、代替案よりもgitを選択しました。利点は、高速で効率的であり、説明できないバグや動作に遭遇した場合に実際にRTFSできることです。また、巨大なインタープリター/ランタイムを含まない小さなセルフホスト開発環境で使用することもできます。つまり、最新のソースを他の場所から取得してrsyncする必要なく、gitリポジトリから直接引き出してそのようなシステムでコンパイルできます。


1
また、これはgitを選択した理由でもあります。これはgitがpythonではなくコンパイルされた言語で書かれているためです。そのため、USBペンでgitのポータブルバージョンを他のツールと一緒に使用できます。
コヨーテ21

それでも、これがまさに Facebookが代わりに水銀を使用することを選んだ理由です:彼らはどちらのパフォーマンスにも満足していませんでしたが、水銀のパフォーマンスを改善する方が簡単であることがわかりました(ほとんどの操作では、それは、どのような可能性があり、変更されていませんでしたを伝えることができるように、彼らは、ファイル監視サービスとそれを統合することにより行ったsignficantマージン(で)全体的なgitの詳細はこちらを参照してくださいので、PythonはCよりで動作するように簡単だったという事実を)
ジュール


0

Appleが客観的なcコミュニティへのプッシュに関与していることは言うまでもありません。最近Xcode 4で新しいアプリケーションを作成した場合、Gitリポジトリを作成するかどうかを自動的に尋ねられることに気づいたでしょう。

確かに、Xcode 4は数か月しか使用されておらず、Gitsの以前の成功には影響しませんが、Appleが短時間で物を作ることができることは誰もが知っています。


-1

現在、hg(キルン)からgit(github)に切り替えています。私は今約一年間kiを使用しています。私にとって、HGには欠点はありません。しなければならないことは何でもできます。だから素晴らしい。

なぜ今使用していますか?

現時点では3つの理由しかありません。

  1. gitHubは、すばらしい要点を提供します
  2. gitHubは素晴らしいソーシャル機能を提供します
  3. 開発者向けのプレゼンテーションとワークショップを行っている間、私は常にhgとgitでサンプルを公開しました。gitでは、hgの約10倍の訪問者がいます!!

3番目のものが最も重要だと思います。

トルステン


-2

運が良かったと思う。今までは、何かが機能し、他が機能しなかった理由を証明することはほとんど不可能だった。Linusは壮観な何かを構築でき、成功しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.