吸うサブモジュール


Git Xのモジュールを使用すると、速度、スケール、シンプルなgitサブモジュールの共有を楽しむことができます

見てください:gitサブモジュールは罠です
それはとても無邪気に始まる.
つのアプリケーションがあります.彼らはたくさんのコードを共有している.最後に欲しいのは、そのコードの異なるバージョンを開発する時間を無駄にすることです.あなたは、一緒にすべてで働く方法を望みます.
さて、それはちょうどgitサブモジュールが何のためにあるか、ちょうどですか?共有コードは独自のリポジトリを持ち、それを使用するアプリケーションごとに親リポジトリ内に配置されます.
あなたも、何かをインストールする必要はありません.それはすでにツールです.あなたは1つのコマンドを入力し、それを実行している.簡単なpeasy.
それはあなたがそれについて考えたほどでした.結局、これは本当にあなたを興奮させたビットでありませんでした.あなたの心は、あなたが構築したかったものでした.

それはゆっくりgitは本当に複雑であることをあなたに
そして今、あなたとあなたのチーム全体-本当に良いことを選択する必要はありません.
gitサブモジュールは親リポジトリの中に座るだけではありません.親リポジトリのすべてのバージョンは、サブモジュールの特定のバージョンに関連付けられています.
したがって、開発者が5つの他のリポジトリで使用されるサブモジュールを更新する場合、開発者はそれらのすべての1つを更新する必要があります.

それが退屈であるならば、それはそうです.しかし、それは細心の注意を払って管理されなければならないか、プロジェクトは壊れることができます、そして、仕事の時間はちょうど消えることができます.
別の回では、異なる開発者からの変更の別のセットは、サブモジュールの異なるバージョンでは、リポジトリのさまざまなインスタンスを横切って.コードレビューのためにこれをまとめることは、大きな頭痛になります.
バージョン管理をすることの全体のポイントがこの正確な状況を避けることであるとあなた自身につぶやくかもしれません.しかし、ここでは、同じファイルの複数のバージョンをジャグリングです.

古き良き時代を思い出すこと
突然、あなたが知っていたものであるすべてのコマンドは、異なって行われなければなりません、そして、それらのより多くで.ちょうど味です:

身近な方法
クローン
git clone git://example.org/repos.git
コミット
git commit
プッシュ
git push
ブランチを作る
git checkout -b branch

サブモジュールの方法
クローン
git clone git://example.org/repos.git
git submodule init
git submodule update
or
git clone --recurse -submodules
コミット
git commit /*in each submodule*/
git add /*in the parent repository for each module*/ 
git commit /*in the parent repository*/
プッシュ
git push /*in each submodule*/
git push /*in the parent repository*/
ブランチを作る
/*Create a branch in each submodule and in the parent repository*/
これはすべて正確に行われる必要があり、正確な順序で、または他の問題を乗算する.
それは非常にmundaneと反復的なだけでいくつかの簡単なスクリプトを書くことを明らかに感じるし、それを行う.あなたが本当にそれを決してしないことを除いて.あなただけのプロジェクトの成長と変更として定期的に注目を必要とするスクリプトの成長リストがあります.
サブモジュールがプロジェクトについての非常に密接な方法であるという事実を回避することはできません.
そして、あなたがむしろGithubデスクトップのようなグラフィカルなツールを使用したい場合は?運が悪いかもしれない.一部のツールは、サブモジュールをサポートしていません.他の人は、まったく彼らを支持しません.

Using Git submodules, it doesn’t take a big external shock to derail projects

All you really need is for someone to be distracted or have a bad day.



惨めなことは高価な方法だ
あなたの損失を追跡を開始する簡単な方法は、バージョン管理と修正ミスに対処するすべての時間を追加することです.そして、覚えていてください:誰でも、これに時間を失っています.
次に、自分自身に尋ねる:これはあなたのチームのフォーカスと勢いに何をやっている?彼らの士気と彼らの仕事の誇り?
それは測定するのが難しいです、しかし、それはまだ非常に本当です.

残念なことにモジュラーアプローチは驚くべきことだ
別のプロジェクトを自分のリポジトリに分けるという考えについては、とても好きです.

It’s fast

Commands take milliseconds, not minutes.
Developers can search and edit a whole repository on their local machine.

It scales

It grows with you from 3 developers to 3,000 and beyond.
There’s no worry about what happens when 100 developers commit to the same repository at the same time.

It’s so easy to share

It makes it simple to work with external contractors without granting access to all your code.
If you want to publish open-source projects without publishing all of them like Richard Stallman, that’s just as simple.

It’s in one place

You always have a single, authoritative version of the code.


これらはしっかりした利益です.それを与えるのは難しい.ですから、Gitサブモジュールには、まだそれに対処して、頭痛と技術的な負債を取り付けることをあなたに話すと主張する支持者がいます.

しかし、1つのものについて本物を得ましょう
見て、それは偉大なバージョン管理に興奮して開発者を見つけることは不可能ではない.つまり、我々は彼らの一部です.
しかし、ほとんどの開発者はありません.彼らは焦点の自分の領域を構築するにはあまりにも一生懸命働いた.
彼らは仕事を保持し、災害を避けるために十分なバージョン管理に対処します.しかし、彼らが情熱的であることであることは決してありません.そして、それは彼らを彼らの最高に鼓舞します.
それはあまりにも感謝することができます.彼らが望む最高のものについて、何も完全にしないでください、そして、何も気がつかないのを見ます.
そして本当に..開発者も間違って自分のプレートをオフにしたいですか?
なぜ彼らは自分のコードに注意を払うべきではないのですか?

GIT Xモジュールの導入
An X-Moduleは通常のGitリポジトリ内の通常のディレクトリとして設定されます.開発者は他のディレクトリと同じように扱うことができます.
サーバー側のソフトウェアは、自動的に両方の方向の変化を押して外部リポジトリと同期して、このXモジュールのディレクトリを保持します.

どのような紛争がある場合は?Xモジュールは、1つの変更の集合を受け入れ、もう一方をプルリクエストに変える.
そして、あなたが特定のファイルを同期させたくないならば?あなたはそれらを個別に、または拡張によって除外することができます.それで、それらの7ギガバイトを持たないのは簡単です.ISOファイルは、帯域幅を詰め込みます.

Code review made simple

With X-Modules, all the changes are submitted to one place.
Once they’re approved, they’re synchronised across all repositories automatically.

It’s the modular Monorepo

You’re welcome to think of X-Modules as a kind of monorepo. Because there really is one big repository that everything synchronises to.
You’re also welcome to treat them as separate repositories. You still enjoy all the speed, scale and simple sharing of a modular approach.



あなたのチームは既にそれを使う方法を知っている
X -モジュールについての最もよいことは、あなたのチームがそれさえ多くの通知を支払う必要がないということです.
彼らはちょうど他のリポジトリのように、彼らは以前に使用したすべてのリポジトリと同じように動作するように対話します.
すべてのおなじみのコマンドだけで動作します.彼らは特別な要件のないサードパーティ製のツールを使用することができます.

それで、他の人はあなたのコードを同期させて、あなたの方法のままでいるサーバー側解決を望みますか?
GIT X -モジュールはcloud app for GitHubとして利用可能です.それはまだベータ版の中に無料でそれを使用することができます.GitLabとBitbucketの雲のサポートはすぐに追加されます!
on-premises app for Bitbucket Data Centerもある.
まじめに、あなたはそれを試してみる必要があります.
テキスト242479152