問題タブ [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.

0 投票する
1 に答える
234 参照

git - 作業コピーにサブツリーが含まれていることを確認する方法は?

次の作業コピー構造があると仮定しましょう:

ここで、次の方法でサブプロジェクトを追加したとしgit subtreeます。

そのような

このプロジェクトにしばらく取り組んでいないと仮定すると、サブプロジェクトのルートを特定するにはどうすればよいでしょうか? たとえば、「サブツリー化」した場所と正しいリモートを特定するにはどうすればよいでしょうか。または、「サブツリー化」したことをどのように識別しますか?

0 投票する
1 に答える
6745 参照

git - git サブツリーの変更をアップストリーム リポジトリにプッシュすると失敗する

プロジェクトに組み込む前に、git のサブツリーが機能することを確認しようとしています。サブツリーの変更をアップストリーム リポジトリにプッシュするときに問題が発生しました。

セットアップは、2 つのリポジトリと がsubありmain、これにはリポジトリが としてmain含まれています。subsubtree

次に、次のことを行います。

  1. 最初のコミットで両方のリポジトリを初期化します。
  2. subリポジトリを直接更新します (つまり、外部main)。
  3. subリポジトリ内からリポジトリを更新しますmain
  4. sub(を使用して) への変更をgit subtree split別のブランチに分割し、それをチェックアウトします。
  5. アップストリームをリポジトリにプッシュしようとしsubます。当然、このプッシュは拒否されます。これは、への直接の更新が失われるためsubです。
  6. リポジトリから新しい変更をプルしsubます。
  7. アップストリームをリポジトリにプッシュしようとしsubます。今回は、動作するはずですが、動作しません。

この問題をカプセル化するスクリプトを作成しました。subtreeモジュールを有効にしてgitバージョン1.8.2.1を使用しています。スクリプトは次のとおりです。

出力は次のとおりです。

以降git pullのコマンド ( のsplit-branchブランチからmain) は、「既に最新です」と言うだけです。

私が本当に混乱しているのは、私が知る限り、次の出力git pushで示されているように、コマンドは実際にはアップストリーム リポジトリに早送りコミットを与える必要があるということです。git log

これが私の質問です(最後に):

  1. このプッシュが拒否されるのはなぜですか?
  2. 私はそれについて何ができますか?(--forceオプションを使用することが答えである場合、破壊的なことをしていないことをどのように確認できますか?)
  3. subtreeこの問題を回避するためにモジュールを使用するより良い方法はありますか? (注: サブモジュールを使用する気はありません。)
0 投票する
5 に答える
6831 参照

git - サブツリーをプッシュするための増え続ける時間を短縮するにはどうすればよいですか?

Git サブツリーを使用して、いくつかのサブプロジェクトをメイン プロジェクトに「リンク」しています (「svn:externals」から来ています)。数週間使用しましたが、サブツリーのリモートに変更をプッシュする時間がコミットごとに増加します。

サブツリーを「クリーンアップ」して、変更をプッシュする時間を短縮する方法はありますか?

0 投票する
1 に答える
1064 参照

git - サブディレクトリからサブツリーをマージできますか?

いくつかのファイルを含む 2 つの git リポジトリを想定してみましょう。

ここで、 ProjectBfooのディレクトリをProjectAに含めたいと思います。

私が理解している限り、git subtree addそれprefixは受信リポジトリにあるはずのパスです。

私はで終わるだろう

fooこのレイアウトを取得するためだけに取得したいことをどうにかして指定できますか?

0 投票する
3 に答える
24869 参照

git - ルートの git サブツリーを一覧表示するにはどうすればよいですか?

たとえば、git remote --verbosegit を実行すると、プロジェクトにあるすべてのリモートが表示され、git branchすべてのブランチが表示され、現在のブランチが通知されますが、破壊的なコマンドなしですべてのサブツリーを一覧表示するにはどうすればよいでしょうか? git subtree使用例を示しますが、何もリストしません。サブツリーには、、、、、のみがaddあります。pullpushsplitmerge

0 投票する
2 に答える
10572 参照

git - ブランチからの git サブツリーの追加

を使用してプロジェクトにレポ (牛と呼ばれる) を追加しようとしていgit subtree addます。stable特に、ブランチ(ブランチではない)を追加したいと思いmasterます。私は試した:

しかし、これはエラーを返しました

私も試しました:

と:

ハッシュは、stableブランチの最新のコミットのものでした。私がオンラインで見た使用例はすべてmasterコミットに使用されていますsubtree addが、マスター以外のブランチで使用することは可能ですか?

0 投票する
1 に答える
874 参照

git - Git: サードパーティ ライブラリのサブディレクトリのみを複製/サブツリー/フィルタ

svn:externals " http://svn.3rdapp.com/project/subdir/subdir/lib/mydir/subdir "

SVN を使用すると、開発者はサードパーティ ライブラリのサブディレクトリを独自のリポジトリのサブディレクトリに含めることができます。

おそらく編集可能なサブツリーとして、サードパーティのライブラリのサブディレクトリのみをプロジェクトに含めたいと思います。新しいアップストリームの変更は私の編集とマージされます。

特にhttps://github.com/openid/php-openid/tree/master/Authは、他のディレクトリからのファイルや履歴なしで Vendor/Auth に含まれています。