2017-06-14 9 views
0

私は奇妙なユースケースを持ち、Gitにあまり慣れていません。私は2つのgitリポジトリを持っています。空のレポをレポし、ファイルを持つレポをレポします。私はまた、フォルダ./fooを持っています。私はこれに似た何かをしたい:.gitフォルダなしでgit repoを既存の空でないディレクトリにクローンすることは可能ですか?

cd ./foo 
git clone repo_one . 
git clone repo_two . (I just want the files from repo_two. No .git folder or anything) 
git add --a 
git push repo_one 

または多分

cd ./foo 
git clone repo_two . 
rm ./.git 
git clone repo_one . (possible in an existing directory though?) 

は、これらの可能性のいずれかいますか?私が本当に気にするのは最終結果です。 .fooはrepo_oneにリンクされていますが、repo_twoからのファイルが含まれています。

+0

これらのファイルの履歴はすべて失われてしまいます.1つのリポジトリで何か変更した場合は、2番目のリポジトリでも変更する必要がありますか?一つのリポジトリを別のリポジトリと呼ぶときにサブモジュールを使って "リンク"するオプションがあります。あなたが履歴を保持するこの方法では、変更を一度だけ行う必要がありますが、(今)空のリポジトリでファイルに直接アクセスできます。 – andipla

答えて

1

、その.gitフォルダずに輸出(またはアーカイブ)にレポ#2でそれを次のコマンドを実行します。

git archive master | tar -x -C /path/inside/repo1 

の最終シーケンスを一般的にはバンドルとアーカイブについては、この有用なブログ記事をチェック

cd foo 
git clone repo_one 
git clone repo_two 
cd repo_two 
git archive master | tar -x -C ../repo_1 
0

git cloneはどこか.gitディレクトリを置くオプション--separate-git-dir=を持っていますが、それは移転.gitディレクトリを参照し、チェックアウトディレクトリ内.gitという名前のファイルを作成します。あなたがGitのリポジトリの両方をクローン化したので

https://git-scm.com/docs/git-clone#git-clone---separate-git-dirltgitdirgt

0

:イベントは、このようなものになるだろう

+0

ようこそStackOverflow!ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用することをお勧めします。 [回答方法​​](https://stackoverflow.com/help/how-to-answer)を参照してください。 –

関連する問題