2011-12-14 9 views
8

は、私は次の構造を持つリモートリポジトリ([email protected]:project.git)を持っていると仮定します。私はclientserverと並列testサブディレクトリとして、リモートリポジトリに、このローカルリポジトリをプッシュしたい、それは私が地元にあるすべてのチェックインの歴史を希望するリモートリポジトリに保存することができはリモートリポジトリのサブディレクトリとしてローカルリポジトリを追加

./client 
./server 
./test 

です。これを達成する方法はありますか?ありがとう!

答えて

6

通常の解決策は、subtree merge strategyを使用することです。

詳しくは、Git subtree merge strategy, possible without merging history?を参照してください。


その他の解決策は、ローカルリポジトリをリモートリポジトリのサブモジュールとして宣言することです。そのために

、次のものが必要になります。

  • がローカル
  • として[email protected]:test.gitを追加[email protected]:project.gitのクローンを作成するためにあなたのリモートサーバ上の独立したレポとして
  • をあなたの地元のレポをプッシュするa submodule

しかし、テストファイルがプロジェクトに密接に関連している場合、それはおそらく最善の解決策ではありません。

1

私は以前の回答がうまくいきませんでした(詳細はGitの初心者が必要でした;-)、https://git-scm.com/book/en/v2/Git-Tools-Submodulesはステップバイステップのアプローチで完全にそれを行いました。また、履歴をマージ/破棄する両方の方法についても説明します。

+0

リンクは2016.03.27から壊れています。 – adam0404

+0

2017.08.24現在、リンクは正常です。 – Erathiel

関連する問題