git add와git ls-files의 ignore와other 옵션을 이해
git ls-files 소개
ls-files 명령은staged의 인덱스 파일을 표시하는 명령입니다
이게 뭔지 생각할지도 모르지만, 주로
git add
이후의 서류들을 가리킨다.원래 git add는
git add
제출 전 작업실제로 무엇을 하고 있는지 말하자면git가 관리할 수 있는 곳에 대상의 파일을 놓아두세요.
파일을 만든 후 git는 *untracked (직역 추적 불가) * 상태에서 파일을 확인합니다.
실제 터치로
test
된 파일을 만든 후 git status
한 것은 다음과 같다.$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
test
nothing added to commit but untracked files present (use "git add" to track)
c1r2s2%
Untracked files에서test라는 파일이 있음을 알 수 있습니다.이를 진행
git add
함으로써git가 관리할 수 있는 장소인 정착구역으로 이동할 수 있다.이것도 전문 용어
stagedにインデックスする
라고도 부른다.무대에 올라야 한다는 것을 깨달았다면(git가 보고 있는 무대) 이해하기 쉬울 것이다.
$ git add test
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: test
이로써 Changes to be committed
는 서류가 제출될 예정 서류가 되었다.제출한 예정 파일 =git의 감시 대상 파일입니다.
참고로
test
의 출력에도 기록되어 있지만 입력git status
을 하면 테스트 파일은 unstage가 되고 원래의 untracked 상태로 돌아갑니다.git ls-files
git reset HEAD test
알아도 원래대로 돌아가면 git add
무대 구역에 존재하는 문서를 열람한다는 뜻이다.참고로 ls는
git ls-files
의 줄임말로 디렉터리에 존재하는 내용을 목록화한다는 뜻이다.따라서
list directory contents
git의 감시 대상인 디렉터리에 존재하는 파일만 표시합니다.목록을 열람할 수 없으니 주의해라.git ls-files
제출/누른 파일도 표시됩니다.제출한 파일 등도 디버그 영역에 존재하기 때문에 표시됩니다.git ls-files --other
--other도 -o에서 실행 가능
다음은 옵션의 이야기입니다.
other는git ls-files에 표시된 이외의 내용을 표시하는 명령입니다.
어쨌든 untracked 파일을 표시합니다.
따라서 아까 예시한test 파일을 표시하려면 입력
git ls-files
을 통해 표시할 수 있습니다git reset HEAD test
.그리고gitignore에 기재된untracked 파일도 이 명령으로 표시할 수 있습니다
git ls-files-고성능 <옵션>
-- ignore도 -i로 수행할 수 있다
ignore 옵션은 장정 영역에 무시된 파일만 표시하는 명령입니다.
여러 옵션에서 객체가 무시되는 파일을 지정할 수 있습니다.
선택 항목은 여기에 있습니다.
여기 보세요
git ls-files --other
.공식은 다음과 같다.
Add the standard Git exclusions: .git/info/exclude, .gitignore in each directory, and the user’s global exclusion file.
즉,
--exclude-standard
에 기재된 파일 형식이나 각 디렉터리에 존재하는 .git/info/exclude
에 기재된 파일 또는 사용자가 배제 대상이 되는 파일이다..git/info/exclude의 내용은 기본적으로 아무것도 쓰지 않습니다.
$ cat .git/info/exclude
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
제외하고 싶은 서류 등이 있으면 추기하는 방식.gitignore
에 기재된 문서에 관하여 대상은 각각의 .gitignore
에 기재된 문서들을 참조한다.만약 사용자가 배제된 파일을 독립적으로 배제된 설정의 파일로 삼는 등 일반적이라면 신경 쓸 필요가 없다.
즉,
.gitignore
에 세 개의 파일이 표시됩니다.따라서 개인 설정 등이 없으면 ignore 옵션을 통해 참조할 수 있는 파일은
gitignore에 기재된 파일만
주의점
단,
git ls-files --ignored --exclude-standard
에 기재된 파일은dd가 될 수 없습니다.그런 구조니까.이유는gitignore의 구조를 참조하십시오.
따라서 ignore 옵션을 사용할 때 --other와 함께 사용합니다.
한 마디로 하면 출력
.gitignore
에 기재된 파일의 명령은 다음과 같다..gitignore
겸사겸사 말씀드리겠습니다.
ignore 옵션을 개별적으로 사용하는 방법도 있습니다.
이것은dd 후staged 상태의 파일을
git ls-files -io --exclude-standard
에 추가하는 방법입니다.이렇게 하면
.gitignore
참조할 수 있습니다.그나저나 gitignore는push에 걸리지 않으려는 파일을 추가해야 하지만 이 경우
git ls-files -i --exclude-standard
에 기재돼도commiit/push를 할 수 있기 때문에 주의해야 한다.대상 파일을 unstaged로 진행하면dd를 진행할 수 없습니다.
Reference
이 문제에 관하여(git add와git ls-files의 ignore와other 옵션을 이해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/pictogram/articles/f81920695d68b6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)