2012-04-01 4 views
0

私は自分の個人的なレポ名myrepoを持っています。私はgit cloneを使用してsomerepoを取得しましたが、今はmyrepoの不可欠な部分にしたいと思います。私はそれを次のようにすることを考えている。「gitクローン<some_repo>」の後に<my_repo>としたいと思っています<some_repo>の部分<my_repo>

  1. 内側myrepoツリーgit clone <somerepo>
  2. フェッチsomerepo内のすべてのファイルを追加し、コミット
  3. などなど.git.gitignoreなどsomerepoからすべてのgit関連のファイルやディレクトリを削除します。

git-repoの 'raw'データのみをクローンするコマンドはありますか(git関連ファイルは無視しますか?さらに良いことに、これらの3つのステップを実行できるコマンドがあります(または複数あるかもしれません)。

私は約git submoduleを少し読んだ。 submoduleを使用できますか? somerepoに将来の変更に関心がないとします。

+0

あなたがサブモジュールを使用することができ、またはあなたがサブツリーのマージを行うことができます...両方は、(一般的に、あなたが望むものである)「外国人」のリポジトリの完全な履歴を保持します – knittl

答えて

1

あなたが既に回答したように聞こえるので、私は質問を理解できないかもしれません。

クローニング後、rm -fr .gitディレクトリのみ。リポジトリごとに1つの.gitディレクトリしかないので、削除するのは簡単です。 (各ディレクトリ内の.svnを持っているSubversionと似ていません)

あなたは「今後の関心はないと思う」と言ったので、.gitignoreファイルを削除する必要はありません。最後に

$ find <path_to_some_repo> -name '.gitignore' -exec rm {} \; 

git add <path_to_some_repo>すれば完了です:あなたが本当にしたい場合しかし、それはかなり簡単でもあります。

これがあなたが探しているものでない場合は、より正確に要件を説明してください。

git-repoの 'raw'データのみをクローンするコマンドはありますか(git関連ファイルは無視しますか?

gitの "clone"は、リポジトリ内のすべてのrefとオブジェクトを取得することを意味するため、文字通りではありません。 git checkout-indexで、これは「svn export」と似ていますが、それでもやるにはリポジトリのコピーが必要です。

参照:Do a "git export" (like "svn export")?

+0

私はgitの中でこれをすべて実行することなく1つのコマンドを探していました。 'git pull-and-merge-in-tree some-repo'のようなものです。 – Dilawar

0

リモートように、第2のリポジトリを追加することができます。

git remote add some_repo [email protected]:some-repo 

問題git pull some_repoまたはgit fetch some_repo +手動マージその後。

subtree mergeでもよい。

+0

好ましくはあなたがしたいですサブツリーのマージ、すべてのファイルをリポジトリのサブツリーに移動する – knittl

+0

@Fermaref手順を実行した後、他のマシンで 'git clone 'を実行した場合。 some-repoを自動的に取得しますか? – Dilawar

+0

コメント内のコマンドの編集/詳細を自由に提案できます。私はそれを直接承認/追加します。 – Femaref

関連する問題