問題タブ [multiple-repositories]
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 - github リポジトリのコンテンツを別の github リポジトリに追加するにはどうすればよいですか?
昨日、私は github リポジトリを作成しましたが、今日、アドバイザーも github リポジトリを作成していることがわかりました。大規模に台無しにすることなく、私のリポジトリを彼のリポジトリに追加する最良の方法は何ですか? 私は過去に物事を大規模に台無しにしてしまったので、確認したいだけです. また、別の StackOverflow 投稿の指示に従おうとして、すでに失敗している可能性があります。
現在、2 つのブランチがあるようです。「git checkout master」と入力するとファイルが表示され、「git checkout tmp_branch」と入力すると彼のファイルが表示されます。すべてのファイルを彼のリポジトリに追加して、今後はそのリポジトリを使用したいと思います。また、リポジトリを削除することもできます。
これまで私がやろうとしたことは
本当にありがとう :)
git - プロジェクトを複数の git リポジトリに分割する
私は git を初めて使用し、既存のプロジェクトを git に移行する任務を負っています。私が抱えている問題は、それが実際には2つのプロジェクトだということです。プロジェクトを「One」と呼びましょう。1 つは、実際にはレポート サイトと、個々のプロジェクトで使用されるコード テンプレートのグループの両方です (これにより、レポート サイトはプロジェクト間で標準的なレポートを実行できます)。開発サーバーとレポート サーバーでレポート サイトを実行し、開発サーバーと運用サーバーにコード テンプレートを配置したいと考えています。そのため、両方のリポジトリが必要になる場合もあれば、1 つだけ必要になる場合もあります。一方は、次のようなコード構造で記述されています。
したがって、レポート サイト リポジトリには onesource および oneerept サブディレクトリを含める必要があり、テンプレート リポジトリには onelib および oneinc ディレクトリを含める必要があります。必要に応じて、oneadmn ディレクトリをサーバー間の共有マウントにすることができます。現在、すべてが共有マウントとして設定されていますが、これは複数の理由で問題があります。
これをgitで設定するにはどうすればよいですか?
git - 1 つのフレームワーク プロジェクトで複数のプロジェクトをバージョン管理する方法は?
さて、私はこの投稿GIT Version Control setup for multiple projects with shared code を見てみましたが、それは私が必要とするものに対して複雑すぎる (私は推測する) ため、私が望むものに正確に答えているとは本当に思わないことがわかりました.
私は会社で働いており、4つ以上のプロジェクトがあります。それらは現在、SVN によって 1 つのリポジトリのみでバージョン管理されています。私たちはGITに移行しており、GITまたはSVNに関する多くの技術的な回答を見つけましたが、私が探しているのは、バージョン管理の一般的な使用法に関する理論的な回答です.
私たちのプロジェクトの 1 つは、ほぼすべてのプロジェクトのフレームワークとして使用するプラグインです。プラグインはプロジェクト間で共通のものですが、他のプロジェクトは互いにまったく異なるため、唯一の共通点です。
プロジェクトに取り組んでいるときに、他のプロジェクトのフレームワークとして使用するプラグインの何かを変更しなければならないことがあります。プロジェクトを作成し、フレームワーク プラグインで何かを変更します。
上記の状況は、すべてのプロジェクトがフレームワーク プラグインを必要とするため、各プロジェクトを別のリポジトリに配置できないと考える理由です。ただし、すべてのプロジェクトは (完全に) 異なるため、それぞれを異なるリポジトリでホストする必要があると思います。
質問: すべてのレポに 1 つのレポを使用するか、それぞれに 1 つのレポを使用する必要がありますか?
maven - Maven リリース プラグインと Jenkins を使用した個別の git リポジトリ内の複数のプロジェクト
、マルチモジュール、マルチプロジェクト、親POMなどについてかなりのヒントを見つけましたmaven-release-plugin
が、それらはすべて私が持っているものに完全には適合しません:
私はいくつかのプロジェクトを持っています (簡略化されたケースは 2 つです:project-common
とproject-impl
)互いに多少分離しており、別々の git リポジトリで開発されていますが、通常は一緒にリリースされています。この目的のために、以下project-common/pom.xml
が含まれます。
…そして以下をproject-impl/pom.xml
含む:
親 POMはありません。
ここでの考え方は、通常は のバージョンをproject-common
すべてのプロジェクトに使用することですが、1 つのプロジェクトのみを個別にリリースできる場合もあります。そのような場合、もちろん、依存関係のバージョンを手動で変更する必要がありますが、それは問題ありません。
現在、Jenkins の「Perform Maven Release」を使用してリリースを作成しています。(まあ、私たちは望んでいます。プロジェクトは最近までリリースできなかったので、開発者は手動で作成し、一時ファイル、未使用のファイル、ローカルの変更、XML 構成の LDAP パスワード、エディター.swp
ファイルなどを完備しました。理由がわかります。 Java™やMavenやJenkinsを知らなかったにもかかわらず、私はこれを変更する任務を負っていました。
のリリースproject-common
は問題なく行わproject-impl
れますが、最初のフェーズで失敗し、SNAPSHOT 依存関係がないことを確認します。まあまあ。( project-common
1 つしかありません。) をオーバーライドしmaven-release-plugin
て SNAPSHOT チェックをスキップすることはできません。親 POM を使用しても、ここでは機能しません。これらは完全に別個のリポジトリであり、場合によっては個別にリリースされるためです。では、Jenkins と Maven Release の快適さを維持しながらこれを行うにはどうすればよいでしょうか?
続けてください: 自分の質問に答えてください - あなたの知識、Q&A スタイルを共有してください.</p>
maven - 1 つの gradle ファイル内の複数の Maven リポジトリ
だから私の問題は、複数のmavenリポジトリを1つのgradleファイルに追加する方法です。
これは機能しません:
github - 組織をフォルダーとして使用することは良い方法ですか?
この質問で、 Github組織は、フォルダー内のファイルとしてリポジトリを「再グループ化」するためのソリューションであることがわかりました。
しかし、Github 組織のドキュメントを読んでいるうちに、組織は個人のリポジトリ アセンブリよりも、開発者グループまたは企業を表すように設計されているようです。
だから私の質問は次のとおりです。私が一人で作業している場合、組織をフォルダーとして使用することは良い習慣ですか?
つまり、組織はフォルダーとして使用するように設計されていますか? そうでない場合、多くの人がこのように使用していますか?
git - 同じデータ上で異なるネットワーク (接続できない) にある 2 つのリポジトリを操作するにはどうすればよいですか?
私たちのチームは、いくつかの xtest ファイルを扱う必要があります。競合を避けて履歴を残すために、git を使用したいと考えています。問題は次のとおりです。
- 月曜日から木曜日まで、すべてではありませんが、ほとんどの人がデスクトップ PC を使用してネットワーク A 内で作業します。
- 金曜日から日曜日まで、全員ではないがほとんどの人がラップトップを使用してネットワーク B 内で作業します。
- セキュリティ上の理由から、ネットワーク A と B を直接接続することはできません。データの交換は、USB フラッシュ ドライブでのみ可能です。
- プロジェクトの変更履歴を保存することは非常に重要です。
いくつかの調査を行い、いくつかの回答 (例: 2 つの同一の git リポジトリ) を読んだ後、要件を満たすために次の計画を立てていますが、それがうまくいくかどうか (またはより簡単に実行できるかどうか) は 200% 確信が持てません。あなたからのフィードバックをお待ちしております:
- ネットワーク A 上のサーバー上のベア リポジトリから始めます。Everbody はデスクトップ PC でこのリポジトリのクローンを作成し、1 つのマスター ブランチで (ネットワーク A のサーバー上のリポジトリからプルおよびプッシュして) 操作します。
- 最初の木曜日に、1 人の男 (git-admin と呼びましょう) がネットワーク A のローカル デスクトップ PC に新しいベア リポジトリを作成し、それをネットワーク A からのリポジトリの新しいリモートとして追加し、すべてのデータをこのローカルのベア リポジトリにプッシュします。
- 次に、git 管理者は、このベア リポジトリを自分の USB フラッシュ ドライブに置き、ネットワーク B のサーバーにコピーします。ネットワーク B でラップトップを使用して作業している全員が、このリポジトリのクローンを作成し、そこからプル/プッシュします。
とても良いものですが、今では 2 つの中央リポジトリがあり、ネットワーク A と B の両方で人々がそれに取り組んでいる可能性があります。したがって、それらを近くに保つために、少なくとも週に 1 回マージすることが重要です。履歴は両方のリポジトリで保存する必要があります! これは少しトリッキーになると思います:
- 毎週月曜日に、git 管理者はネットワーク B のリポジトリから最後にもう一度プルし、ラップトップで新しいベア リポジトリを開始し、それをネットワーク B のリポジトリの新しいリモートとして追加し、ラップトップのこのローカル ベア リポジトリにすべてのデータをプッシュします。 .
- 次に、このベア リポジトリを USB フラッシュ ドライブに置き、ネットワーク A のデスクトップ PC にコピーします。次に、最初に、ネットワーク A の中央リポジトリからプルして最新の状態にします。その後、ネットワーク B からベア リポジトリを追加し、ネットワーク A から複製された自分のリポジトリの新しいリモートとして、そこからプルし、すべての競合を解決して、ネットワーク A の元のリモート リポジトリと、ネットワーク B からコピーされたローカルのベア リポジトリの両方にプッシュします。 .
- これで、ネットワーク A の中央リポジトリが最新の状態になりました。次に、ベア リポジトリを取得し、再び USB フラッシュ ドライブに置き、ネットワーク B のラップトップに置き、ネットワーク B リポジトリの新しいリモートとして追加し、プル、マージ、およびネットワーク B の中央リポジトリへのプッシュを行います。
このプロセスは、毎週月曜日と木曜日に繰り返されます (逆方向)。簡単にするための提案はありますか、それともこれが進むべき道ですか?裸のリポジトリで作業する必要があるかどうか、また、git-admin の通常の最新のローカル リポジトリをそれぞれのネットワークにコピーして、ネットワーク A と B の中央リポジトリを次のように追加するだけでよいかどうかはわかりません。新しいリモコン (彼が作業しているリモコンによって異なります) を押したり引いたりします。
テキストの壁で申し訳ありませんが、助けてくれてありがとう!