Windows에서 Git에서 파일 실행 모드 권한을 만드는 방법은 무엇입니까?
Windows에서 Git을 사용하고 있는데 실행 가능한 셸 스크립트를 git repo에 1회 커밋하고 싶습니다.
통상, 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
어떻게 하면 이 두 단계를 한 단계로 통합할 수 있을까요?git 설정?windows 명령어?
레퍼런스: 두 번째 커밋에 대해서는 Windows의 Git 파일 권한 질문을 참조하십시오.
이 작업은 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-add
가 있었다--mode
깃발
git 2.9.x/2.10(2016년 3분기)은 실제로 (Edward Thomson 덕분에) 다음을 가능하게 합니다.
git add --chmod=+x -- afile
git commit -m"Executable!"
그 때문에, 모든 프로세스가 고속으로 되어,core.filemode
false로 설정되어 있습니다.
Edward ethomson
Thomson()의 4e55ed3(2016년 5월 31일)을 참조하십시오.
도움 : 요하네스 쉰델린()dscho
(2016년 7월 6일 Junio C Hamano에 의해 병합됨----commit c8b080a에서)
add
: 추가--chmod=+x
/--chmod=-x
옵션들실행 가능 비트는 저장소 내의 경로에 대해 검출되지 않으므로 설정되지 않습니다.
core.filemode
false로 설정됩니다.다만, 유저는, 다른 유저와의 호환성을 위해서, 파일을 실행 가능한 파일로 추가하고 싶은 경우가 있습니다.core.filemode
기능성.
예를 들어 셸 스크립트를 추가하는 Windows 사용자는 Windows 이외의 사용자와의 호환성을 위해 셸 스크립트를 실행 파일로 추가할 수 있습니다.이것은 배관 명령으로 실행할 수 있지만(
git update-index --add --chmod=+x foo
명령어를 티칭하면 사용자는 이미 익숙한 명령어로 파일 실행 파일을 설정할 수 있습니다.
파일에 +x 플래그가 이미 설정되어 있는 경우git update-index --chmod=+x
플래그가 repo에 저장되지 않은 경우에도 git은 커밋할 것이 없다고 생각합니다.
먼저 플래그를 제거하고 git 명령을 실행한 다음 플래그를 다시 넣어야 합니다.
chmod -x <file>
git update-index --chmod=+x <file>
chmod +x <file>
그러면 git이 변경을 확인하고 변경을 커밋할 수 있습니다.
커밋에 필요한 git 설정(신용:Nabi의 답변:
git config core.filemode false
cloner에 필요한 git 구성:
git config --global core.autocrlf input
주의할 점은 우선 다음 사항에 대해 확인해야 한다는 것입니다.filemode
로 false
츠키다
git config core.filemode false
다음으로 다음 명령을 사용하여 0777 권한을 설정할 수 있습니다.
git update-index --chmod=+x foo.sh
이 없다touch
★★★★★★★★★★★★★★★★★」chmod
명령어로 합니다.git update-index --chmod=+x foo.sh
나한테는 안 통한다.
설정함으로써 최종적으로 해결합니다.skip-worktree
삭제:
git update-index --skip-worktree --chmod=+x foo.sh
이 작업을 수행하기 위해 제가 해야 할 일은 다음과 같습니다.
- GitHub Desktop을 사용하여 커밋하지 않으면 변경을 인식하지 못하기 때문에 커밋하지 않습니다.
- ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.
git add --chmod=+x foo.sh
- ★★★★★★★★★★★★★★★.
git commit -m"Executable!"
다른 , 이이 여러분의 에일리어스에 이 될 수 ..gitconfig
filename을 클릭합니다.
…
[alias]
…
stage = add
stagex = add --chmod=+x
unstage = restore --staged
setmodx = update-index --chmod=+x
stagex
실행 가능 권한 비트가 설정된 파일을 추가합니다. setmodx
는 이미 스테이징되었거나 커밋된 파일에 대한 실행 권한을 활성화합니다.다른 별칭은 이 두 가지가 어떻게 들어맞는지를 보여주기 위해 붙여진 것입니다.
언급URL : https://stackoverflow.com/questions/21691202/how-to-create-file-execute-mode-permissions-in-git-on-windows
'source' 카테고리의 다른 글
도대체 왜 Excel이 같은 이름의 파일 2개를 처리할 수 없는 거죠? (0) | 2023.04.09 |
---|---|
Swift에서 Unix Epoch Time 가져오기 (0) | 2023.04.09 |
루트 뷰 컨트롤러를 입수하는 방법 (0) | 2023.04.09 |
VBA에서 현재 워크시트의 경로를 얻는 방법은 무엇입니까? (0) | 2023.04.09 |
CORS 헤더 'Access-Control-Allow-Origin'이 없습니다. (0) | 2023.04.04 |