git status 하였을때 아무런 변경사항이 없는데도 불구하고 Changes not staged for commit에 상태변화가 있었다.
그래서 git diff으로 상세 변경사항을 보니 아래와 같이 old mode와 new mode로 나오는 경우가 발생하였다.
24hours-beginner:~/test$ git diff
diff --git a/test_script.sh b/test_script.sh
old mode 100644
new mode 100755
궁금해서 검색 결과 권한을 변경 또는 부여했을 경우 이런 경우가 발생한다고 한다.
crontab에서 script 실행을 위하여 아래와 같이 권한을 설정했기에 바로 납득하였다.
chmod +x filename
이러한 변경사항을 알려주는 이유는 권한을 변경을 하여도 이게 저장 또는 변경이 안된다라고 하는듯 하다.
1. old mode new mode 변경사항 무시하는 방법
이 변경사항을 무시하려면 두가지의 방법이 있다.
1. git config 이용
# 현재 repository에만 적용
# .git/config
git config core.filemode false
# 글로벌 적용
# ~/.gitconfig, ~/.config/git/config
git config --global core.filemode false
(현재 repo에만 적용)그러면 아래와 같이 메일이 보내졌다고 한다.. 뭔지 모르겠다... 하지만 하고 나면 git diff 했을 때 아무것도 나오지 않은걸 확인할 수 있었다.
You have new mail in /var/mail/24hours-beginner
2. .gitconfig 또는 .git/config 수정
Add in ~/.gitconfig or .git/config:
[core]
filemode = false
여기서 참고할점은 .git/config값이 filemode = false가 기본값인지 이미 설정되어 있음에도 불구하고 저게 떴었다.
보기싫으면 false가 되어 있더라도 한번 더 false 해주는것을 추천한다.
2. filemode를 확인하려면
# windows powershell
git config --list --show-origin | sls filemode
# Linux
git config --list --show-origin | grep filemode
참고사항 git config
'git config’라는 도구로 설정 내용을 확인하고 변경할 수 있다. Git은 이 설정에 따라 동작한다. 이때 사용하는 설정 파일은 세 가지나 된다.
- /etc/gitconfig 파일: 시스템의 모든 사용자와 모든 저장소에 적용되는 설정이다. git config --system 옵션으로 이 파일을 읽고 쓸 수 있다. (이 파일은 시스템 전체 설정파일이기 때문에 수정하려면 시스템의 관리자 권한이 필요하다.)
- ~/.gitconfig, ~/.config/git/config 파일: 특정 사용자(즉 현재 사용자)에게만 적용되는 설정이다. git config --global 옵션으로 이 파일을 읽고 쓸 수 있다. 특정 사용자의 모든 저장소 설정에 적용된다.
- .git/config : 이 파일은 Git 디렉토리에 있고 특정 저장소(혹은 현재 작업 중인 프로젝트)에만 적용된다. --local 옵션을 사용하면 이 파일을 사용하도록 지정할 수 있다. 하지만 기본적으로 이 옵션이 적용되어 있다. (당연히, 이 옵션을 적용하려면 Git 저장소인 디렉토리로 이동 한 후 적용할 수 있다.)
- 각 설정은 역순으로 우선시 된다. 그래서 .git/config 가 /etc/gitconfig 보다 우선한다.
Git - Git 최초 설정
Vim과 Emacs, Notepad++은 꽤 인기 있는 편집기로 개발자들이 즐겨 사용한다. Mac이나 Linux 같은 Unix 시스템, Windows 시스템에서 사용 가능하다. 여기서 소개하는 편집기들이 불편해서 다른 편집기를 사
git-scm.com
참조 링크
How do I remove files saying "old mode 100755 new mode 100644" from unstaged changes in Git?
For some reason, when I initially did a pull from the repository for a git project of mine, I got a ton of files in my working copy that have no discernible changes made to them, but keep showing u...
stackoverflow.com
'Git' 카테고리의 다른 글
[Git] github push error: RPC failed; result=22, HTTP code = 408 (0) | 2023.06.08 |
---|---|
[Git] git commit 파일 내용 검색 (feat. git grep / log -G) (0) | 2023.01.09 |
[Git] remote (0) | 2021.08.10 |
[Git] git 기초 참고 사이트 (0) | 2021.04.06 |
git 최초 설정 (0) | 2021.02.25 |