2016-12-28 6 views
1

私はいくつかの人と一緒に使うgitリポジトリを持っています。理由のために、githubはオプションではないので、我々はそこから共通のディレクトリと両方のクローンを使用します。特定のlinuxグループでpushを実行するにはどうすればよいですか?

ここでの問題は、私のデフォルトのlinuxグループがリポジトリのグループではないことにあります。そのため、私がプッシュすると、いくつかのグループのアクセス権が乱れてしまいます。プッシュされたファイルはきれいです( "core.sharedRepository = group"がリポジトリに設定されています)。しかし、ブランチの頭とパスはデフォルトのグループになります。これは、私が正しいグループに手動で変更しないと、他の人が結果を引き出すのに問題が発生します。

私は押したときにgitに共有リポジトリのグループを使用させる方法はありますか?

+0

ファイルシステムのACLを使用して、使用しているFS上で可能な場合はグループを強制的に使用しますか? –

+0

@Samiそれは悪くないが、私はファイルシステムへのそのような種類のアクセス権を持っているのか分からない。ディレクトリに作成されたすべてのファイルを特定のグループに強制的に移動させる方法があれば、誰かにレイアウトを変更させる可能性があります。 –

+0

使用中のFSを確認してください。 ACLをサポートしていないこれらの日が使用されているかどうかわからない場合は、「ここに書かれたものはどれもこのグループを持つ」とか、少なくとも「ここに書いたものはこのグループからアクセスできる」と言うのは簡単です。多くの場合それを使用して、それは命の恩人です。 UGOのアクセス定義では、通常はそれをカットしません。 –

答えて

0

あなたはnewgrpコマンドを探しています。 私の最初の試みはggit() { (newgrp gitgroup; git "[email protected]"); }となるはずです。そうすればggit pushとすることができます。

編集:よく、私の最初の試み彼女の仕事はありません。 newgrpコマンドは魔法を実行しません。ログインシェルを起動するだけです。コマンドは

ggit() { echo git $(git rev-parse --sq-quote "[email protected]") | newgrp gitgroup; } 

です。

関連する問題