2017-09-08 11 views
1

リポジトリのクローン作成と特定のコミットIDのチェックアウトについて多くの質問/回答が見つかりました。些細なアプローチ:git:浅いクローンでクローン固有のコミットID

git clone <URL> working-copy 
cd working-copy; git checkout <COMMIT-ID> 

あなたができるだけgit clone -b <BRANCH> <URL>

支店であなたもはるかに高速クローニングなりますが、あなたはそれ以上の任意のIDをチェックアウトすることができない浅いクローンを作ることができ支店を持ちます。

私の質問です:特定のURL /コミットIDの浅いクローンを作成する方法は、リモートでブランチを作成せずにですか?

リモートリポジトリの種類によって違いはありますか? (ローカルファイルシステム、BitBucket、GitHub、GitLabなど)

+0

これは 'それは依存している'キャンプにしっかりと落ちます。あなたは自分のサーバーを稼働していますか?あるいは、GitHubやBitBucketのようなサービスを使っていますか? – LightBender

+0

いいえ。リモートリポジトリのコミットにブランチまたはタグを作成する必要があります。 https://stackoverflow.com/questions/26135216/why-isnt-there-a-git-clone-specific-commit-optionを参照してください。 – ElpieKay

+0

@LightBender:私の場合、私はローカルリポジトリとBitBucket(http/ssh経由)に興味があります – frans

答えて

2

サーバーを管理していない場合、これを行う方法はありません。この作業を行うためにプライベートサーバーで無効にできるセキュリティ設定がありますが、これはではなく、が推奨されています。

浅いクローンは不完全であるため、浅いレポでは多くの機能が利用できません(または少なくとも適切に機能しません)。通常、この手法は、リポジトリが非常に短期間である配備処理に使用されます。

ほとんどの状況では、単一のコミットをシャロークローンにする必要がある場合は、探しているものと同じタグが使用されます。 git clone -bもタグを受け入れ、不変であるため常に同じコミットに解決されます。

ほとんどのCIシステムでは、過去2年間でビルド作業を行ってきましたが、一時的な環境のブランチと永続的な環境のタグのみを使用していました。このシステムは私のためにはうまくいきましたが、いくつかの強固なオプションのうちの1つに過ぎません。

+0

私はちょうどhttps://stackoverflow.com/a/43136160/1668622を見つけました - このアプローチはあなたが言及したセキュリティ設定を変更する必要がありますか? ?そして、あなたは何の設定を正確に話していますか? – frans

+0

@fransそのアプローチは、私が言及した設定を変更することです。 :)詳しい説明は、[the git documentation](https://github.com/git/git/blob/565301e41670825ceedf75220f2918ae76831240/Documentation/git-upload-archive.txt#L23-L53)を参照してください。 – LightBender

関連する問題