[解決済み] WindowsのGitでファイルの実行モードのパーミッションを作成する方法は?
2022-03-18 16:31:45
質問
WindowsでGitを使用していますが、実行可能なシェルスクリプトを1回のコミットでgitリポジトリにプッシュしたいのですが、どうすればよいですか?
通常、私は2つのステップを行う必要があります (
git commit
).
$ vi install.sh
$ git add install.sh
$ git commit -am "add new file for installation" # first commit
[master f2e92da] add support for install.sh
1 files changed, 18 insertions(+), 3 deletions(-)
create mode 100644 install.sh
$ git update-index --chmod=+x install.sh
$ git commit -am "update file permission" # second commit
[master 317ba0c] update file permission
0 files changed
mode change 100644 => 100755 install.sh
この2つのステップを1つのステップにまとめるにはどうしたらいいでしょうか? gitの設定? windowsのコマンド?
リマインド
: 回答は2つで良いです。
git add --chmod=+x file
は新しい git バージョンでサポートされています。
参考:以下の質問をご覧ください。 Windows での Git ファイルのパーミッション 2回目のコミット
解決方法は?
2回のコミットで行う必要はありません。1回のコミットでファイルを追加し、実行可能な状態にすることができます。
C:\Temp\TestRepo>touch foo.sh
C:\Temp\TestRepo>git add foo.sh
C:\Temp\TestRepo>git ls-files --stage
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 foo.sh
ご指摘の通り、追加した後のモードは 0644 (つまり、実行可能ではない) です。 しかし、コミットする前に実行可能であることをマークすることができます。
C:\Temp\TestRepo>git update-index --chmod=+x foo.sh
C:\Temp\TestRepo>git ls-files --stage
100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 foo.sh
そして、このファイルはモード0755(実行可能)になっています。
C:\Temp\TestRepo>git commit -m"Executable!"
[master (root-commit) 1f7a57a] Executable!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100755 foo.sh
そして今、私たちは一つのコミットで一つの実行ファイルを手に入れました。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】マージ後のコミットでGitエラー - fatal: マージ中に部分コミットができない
-
[解決済み】マージの競合が発生した git stash pop の取り消し
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] Git - node_modules フォルダをどこでも無視するようにしました。
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] GitのFETCH_HEADとはどういう意味ですか?
-
[解決済み】WindowsでのGitファイルのパーミッションについて