2016-04-12 13 views
1

私はリポジトリを持っており、apiProjectと呼ぶことができます。これには、companyBというブランチを含むブランチ(マスタ、開発、機能ブランチなど)があります。Gitでブランチアクセスを制御する最良の方法

companyBブランチを私が協力している会社(BCorpと呼んでいます)と共有したいのですが、残りのコードを非公開にしたいと思います。私はまた、更新情報を併合してcompanyBのサポートを継続できるようにしたいと思います。私はそれをサポートしたいので、私はBCorpにcompanyBコードのzipフォルダを送るだけではありません。 Gitを使ってこれを行う良い方法はありますか?

私は、repoをapiProjectForkにフォークしてから、apiProjectForkからプライベートブランチを削除してから、BCorpと共有することができると考えていました。それでapiProjectで開発を続けることができました.Gitを使ってapiProjectForkを更新することはできます。それは働くだろうか?私はフォークを大変扱っていないので、このユースケースにふさわしいかどうかはわかりません。

+0

私はリポジトリの裸のクローンを作成し、1つを除いてすべてのブランチを削除し、そのブランチをフェッチしてそのリポジトリを公開するようにリモートオリジンを設定するべきだと思います。それから定期的に 'git fetch'を実行してください。おそらくマスターリポジトリのフックを使って自動的に行うことさえできます。 – rodrigo

答えて

0

gitレベルでブランチを隠すことはできません。多分、ホストレベルでブランチを隠すことはできません。多分gitlabは、いくつかの機能が含まれ、githubのは、保護された枝(プッシュ保護)含まれています:「プライベートコードの残りの部分を維持するには、」彼らがすべきことを意味している場合https://github.com/blog/2137-protected-branches-improvements

を私の知る限りでは、ビットバケットはこの

0

ための解がありません

  1. は、プライベートあなたのGitのレポを維持し、そのサーバーへの分岐から変更をプッシュ:git push companyB_git companyB次の2つのオプションがあり、その専用の分岐からの変更のみを受け取ります。したがって、彼らはそのブランチからの変更だけを受け取ります。しかし、この場合、ある日あなたが不適切なものを押し込む可能性があります。会社Bの支店に個人支店を統合すると、支店全体の完全な履歴が開示されます。
  2. CompanyBの完全に分離されたリポジトリを組織し、適切な変更を定期的にエクスポートします。基本的にgitアーカイブと同等ですが、これは多かれ少なかれです。したがって、セキュリティと制御が向上しますが、利便性は低下します。
0

ご協力いただきありがとうございますが、時間がなくなり、バージョン管理なしのコードパケットを送信する必要がありました。私は将来、これらのソリューションの1つを実装することを願っています。

関連する問題