232

some.shファイルを実行可能ファイル ( ) に変換しただけchmod 755 ...で、アクセス許可は更新されましたが、コンテンツは更新されませんでした。clone / checkout / pullで実行可能ビットが復元/設定されるように、ファイルを gitにコミットする方法はありますか?

更新:新しい権限が に送信されたことを追跡するにはどうすればよいgithubですか?

4

3 に答える 3

261

@fooMonsterの記事が役に立ちました

# git ls-tree HEAD
100644 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe    script.sh

ご覧のとおり、ファイルには 644 のアクセス許可があります (100 は無視されます)。これを 755 に変更します。

# git update-index --chmod=+x script.sh

変更をコミットする

# git commit -m "Changing file permissions"
[master 77b171e] Changing file permissions
0 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 script.sh
于 2014-01-12T04:39:04.070 に答える
224

デフォルトでは、git は実行ファイルのパーミッションを変更すると更新します。他の権限を変更または追跡することはありません。

実行権限を変更しても何も変化が見られない場合は、おそらくファイル モードを無視する git の設定があります。

ファイルの.gitフォルダーでプロジェクトを調べると、次のように表示されます。config

[core]
    filemode = false

trueお気に入りのテキストエディターで変更するか、次を実行できます。

git config core.filemode true

その後、ファイルを正常にコミットできるはずです。権限の変更のみをコミットします。

于 2012-05-09T12:45:31.690 に答える