3

ubuntu Linux サーバーで gitolite git サーバーを使用しています。プッシュごとに呼び出され、サーバーのディレクトリ (ライブ サイトのソース コードを含む) を更新するフックを使用しました。

これで、ローカル PC で何かを変更してその変更をサーバーにプッシュするたびに、フックが呼び出され、プル リクエストが正常に実行されます。しかし、問題は、更新されたファイルの権限が変更されていることです。お気に入り:

rwxrwxr_x (before)
rwx_____x (After)

いくつか検索した後、私はこの解決策を思いつきました。グローバルgit構成とリポジトリ固有の構成設定の両方で試しました。構成を設定した後、ローカル PC からプッシュしようとすると、上記のように同じ問題が再び発生するため、何らかの理由で解決策が機能していないようです。

理由は何ですか?構成設定以外に何か追加する必要がありますか? どんな提案でも大歓迎です。前もって感謝します。

4

1 に答える 1

4

OP Ranaがコメントで確認しているように、フックが次で始まる場合:

umask 002

適切な保護を備えたファイルを生成します。


アラン・トンプソンは次のように述べています。

core.filemodeリポジトリ内の 2 つのコミット間の差分ではなく、作業ディレクトリに対する差分にのみ影響します。
そのため、すでにさまざまなファイル モードをコミットしている場合は、「 git diff でアクセス許可の変更を無視できるようにできますかfilter-branch」のように、を使用する必要があります。

git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all
于 2012-10-19T17:34:04.193 に答える