問題タブ [git-subtree]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git サブツリーで git flow を使用する
大規模な svn リポジトリを git に移行し、gitflow の使用を開始しました。それは魅力のように機能しましたが、今はその大きなレポをいくつかの小さなレポに分割することを考えています.
レポ ディレクトリ ツリーが次のようになっているとします。
そして、それを 3 つのリポジトリに分割したいと考えています。1 つはコア構造 (libs および apps ディレクトリ) を含み、残りの 2 つは apps ディレクトリを含みます。
git サブツリーを使用してそのように分割すると、各部分で個別に git フローを使用できるようになりますか、それともグローバルに使用する必要がありますか?
PS: これは、stackoverflow での最初の質問です。親切にしてください :)
git - 最初に来たのは:gitサブツリーマージ戦略またはgitサブモジュール?
より最近の発明— gitサブツリーマージ戦略(新しいgit-subtreeコマンドではない)またはgitサブモジュールコマンド(または、gitサブツリーコマンドとマージ戦略に対称的な別個のメカニズムがあった場合は、基礎となるメカニズム)。
最初にGitディストリビューションリリースに含まれていたものは何ですか?
関連するGitML投稿へのリンクのボーナスポイント。
私はGitのコミット履歴からその情報を掘り下げようとしましたが、両方の機能について2007年から2008年のどこかで迷子になりました。
git - Git サブツリーのエクスポートと再インポートの問題
私の別のプロジェクト (B) と一定量のコードを共有する、より大きな git リポジトリ (A) があります。メンテナンスを容易にするために、共通コード (C) を含む 3 番目のリポジトリを用意することにしましたgit subtree
。
Aにすべてを準備し(共通コードをフォルダー「sub」に入れます)、サブディレクトリを別のGitリポジトリに切り離す(移動する)で説明されている手順を使用してCを作成しました
いくつかのコミットで C ができたので、それを A のフォルダー サブに戻したいと思いました。サブフォルダーのすべてのコミットが複製される限り、 http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.htmlで説明されているアプローチを使用しました。私はこれを気にしませんでしたが、今ではこのサブディレクトリで作業を続ける方法がわかりません。
CにプッシュしたいA/subに追加の変更を加えました。git subtree push changes back to subtree project I usedで説明されているように
サブツリーのみでブランチを作成します。これには少し時間がかかりますが、正常に終了します。やっている
私にくれます
しかし、git pull remote-c master
私はすでに最新だと言っています。
この状況を解決するにはどうすればよいですか?
EDIT1:小さなテストスクリプトで問題を再現しようとしました。このスクリプトの実行:
これにより、
git - 既存のフォルダーを git サブツリーにする
私の質問Git subtree export and re-import woesに続いて、フォルダーをサブツリーに変換する方法を尋ねたかったのです。
別のプロジェクト (およびおそらくそれ以上) と共有する必要があるコードがあるリポジトリ A があると想像してください。したがって、すべての共有コードをフォルダー "sub" に配置します。このフォルダは、ベア リポジトリ C に (可能であれば履歴なしで) 抽出する必要があります。また、「サブ」で変更を加えて、これらを C にプッシュできるようにしたいと考えています。
git - git サブツリー タグの参照
別々に維持されている 2 つのライブラリを使用するプロジェクトがあります。ライブラリが変更されるたびに手動でファイルをコピーするという混乱を避けるために、github のこの例を使用して 2 つのサブツリーを作成することができました。
この作業ディレクトリのルートに独自のコードがあります。また、他の 2 つのレポのサブツリーとしてfoolib/
andを持っています。barlib/
マスターの代わりにバージョン 1.20 の foolib を使用できるかどうかを確認したいとします。では、1.21 の方が優れているかどうかを確認したいかもしれません。私の考えでは、そうするならgit checkout foolib-1.20
バージョン 1.20 のコードを入れるfoolib/
つもりです。そんなことはありません。代わりに、作業ディレクトリ全体が folib 1.20 に置き換えられます。これはあまり役に立たず、 の有用性を否定しているようですgit subtree
。
git - サブツリーまたはサブモジュールを使用して外部リソースを管理する Git
私は git サブモジュールがどれほどひどいものであると思われるかについてよく読んでいますが、それが限界を感じている人々のうめき声なのか、それとも深刻な問題があるのか (特に私のユースケースに関して) はわかりません。
このように、レポにさまざまなレポを含めたいだけです
それらのレポを簡単に更新する可能性が必要です。私が理解している限り、レポからファイルを 1 つだけ含めるという簡単な可能性はありませんよね? (でも大丈夫です。)
これにはサブモジュールを使用する必要がありますか?
それとも何か問題がありますか?それとも、サブツリーの方がはるかに簡単ですか?
git - git-subtree:複製されたリポジトリから変更をプッシュする
私はgit-subtree(Avery Pennarunから)を使用しています。現在のgitリポジトリには、もちろんすべてのプロジェクトファイル/フォルダーと「lib」というサブツリーがあります。ここで、このgitリポジトリのクローンを作成git clone
すると、すべてのプロジェクトファイルとサブツリー「lib」(必要なものすべて)が取得されます。今試したこと:複製されたリポジトリのサブツリー「lib」内で何かを変更し、を使用してサブツリー「lib」のリモートリポジトリに変更をプッシュしようとしました
git subtree push
が、機能しませんでした。何が問題ですか?最初にgitsubtreeaddを使用してサブツリーとして追加する必要がありますか?
事前にThx
git - マスター/オリジンにサブツリーを認識させる方法
共有ファイル セットを使用するアプリが複数あります。
サブツリーを使用してこれらのファイルを管理したいと思います。マスター ファイルをチェックアウトし、共有ソースをサブツリーとして追加することで、1 つのローカル クローンを正常にセットアップできました。
これはローカルで機能しますが、オリジンにサブツリーを認識させる方法が見つからないため、同僚がマスターリポジトリを複製するたびにサブツリーを手動で追加する必要がありません。
何かが欠けていると確信していますが、サブツリーのドキュメントが乏しいため、それは明らかではありません。
git - git-subtree add 後にリベースする方法は?
Git 1.7.11 で追加された新しいgit-subtreeコマンドを学習しようとしています。サブツリーを追加した後、リベースできなくなったようです。README ファイルを含むプライマリ リポジトリと、README ファイルも含むライブラリ リポジトリがあります。私はそれをlibディレクトリに追加しsubtree add
ます:
これは問題なく動作しますが、履歴は次のようになります。
今、レポをリベースしたいのですorigin/master
が、スカッシュコミットが適用されない親コミットに対して直接適用されるため失敗します。サブツリー。
この理由は、squash コミットを見れば明らかです。プレフィックスに関する情報はありません。これは、元の mylib コミットがまとめられたものです。次のマージコミットのみがそれについて何かを知っていますが、リベースはここでは考慮しません。
回避策はありますか (サブツリー コミットをリベースしない以外に)?
git - git-subtreeを使用して特定のコミットに移動するにはどうすればよいですか?
gitの拡張機能であるAveryPennarunのgit-subtreeを使用しています。
git subtreeを使用して、サブリポジトリからメインリポジトリへのコミットをチェリーピックするにはどうすればよいですか?また、そのプレフィックスでgitサブツリープルを実行した後、サブリポジトリの履歴で特定のコミットに移動するにはどうすればよいですか?
私は主にこれをスカッシュコミットモードで実行しています。