로컬에서 일부 파일을 무시하도록 git을 설정하려면 어떻게 해야 합니까?
다른 모든 사용자의 git 설정을 오염시키지 않고 로컬에서 파일을 무시할 수 있습니까?git 상태에 스팸인 추적되지 않은 파일이 있지만 로컬 지점에 있는 모든 임의의 추적되지 않은 파일에 대해 git 설정 변경을 커밋하고 싶지 않습니다.
특정 저장소에 고유하지만 다른 관련 저장소(저장소 내에 존재하지만 한 사용자의 워크플로우에 고유한 보조 파일 등)와 공유할 필요가 없는 패턴은 에 저장해야 합니다.
$GIT_DIR/info/exclude
파일.
그.git/info/exclude
파일은 다른 파일과 같은 형식입니다..gitignore
파일입니다.또 다른 옵션은core.excludesFile
글로벌 패턴을 포함하는 파일 이름으로 지정합니다.
이미 스테이징되지 않은 변경이 있는 경우 무시 패턴을 편집한 후 다음 작업을 수행해야 합니다.
git update-index --assume-unchanged <file-list>
주의사항 : 이것은 git 저장소로 가는 경로를 나타내기 위해 git 매뉴얼 전체에서 사용되는 표기법입니다.환경변수가 설정되어 있는 경우, 그 환경변수는 자신이 있는 레포의 위치를 덮어쓰게 됩니다.이것은 아마 원하는 것이 아닐 것입니다.
편집: 또 다른 방법은 다음과 같습니다.
git update-index --skip-worktree <file-list>
다음 방법으로 반전:
git update-index --no-skip-worktree <file-list>
업데이트: 사용 검토git update-index --skip-worktree [<file>...]
대신 @danShumway님 감사합니다!두 옵션의 차이에 대한 Borealid의 설명을 참조하십시오.
오래된 답변:
추적 대상 파일에 대한 로컬 변경을 무시할 필요가 있는 경우(설정 파일에 대한 로컬 변경도 있음)git update-index --assume-unchanged [<file>...]
.
.gitconfig 파일의 [alias]섹션에 다음 행을 추가합니다.
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged
ignored = !git ls-files -v | grep "^[[:lower:]]"
이제 사용할 수 있습니다.git ignore my_file
로컬 파일의 변경을 무시합니다.git unignore my_file
더 이상 무시하지 않도록 해야 합니다. git ignored
에 무시된 파일을 나타냅니다.
이 답변은 http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html에서 수집되었습니다.
몇 가지 옵션이 있습니다.
- 더티(또는 커밋되지 않음)를 그대로 두다
.gitignore
파일(또는 topgit 또는 기타 패치 도구를 사용하여 자동으로 적용)을 지정합니다. - 제외된 항목을 다음 파일에 넣습니다.
$GIT_DIR/info/exclude
파일(이것이 1개의 트리에 고유한 경우)을 지정합니다. - 달려.
git config --global core.excludesfile ~/.gitignore
패턴을 추가합니다.~/.gitignore
이 옵션은 모든 트리에서 특정 패턴을 무시하는 경우에 적용됩니다.저는 이거를.pyc
그리고..pyo
예를 들어 파일입니다.
또한 필요에 따라 명시적으로 파일을 열거하지 않고 패턴을 사용하고 있는지 확인하십시오.
다음을 찾고 계신 것 같습니다.
git update-index --skip-worktree FILENAME
로컬에서 이루어진 변경을 무시합니다.
이 솔루션에 대한 자세한 설명은 http://devblog.avdi.org/2011/05/20/keep-local-modifications-in-git-tracked-files/에서 보실 수 있습니다.
실행을 취소하려면:
git update-index --no-skip-worktree FILENAME
홈 디렉토리에 .gitignore 파일을 추가할 수 있습니다.$HOME/.gitignore
또는~/.gitignore
그런 다음 git에게 다음 명령어와 함께 해당 파일을 사용하도록 지시합니다.
git config --global core.excludesfile ~/.gitignore
이것은 git가 무시할 대상을 결정할 때 참조하는 일반적인 .gitignore 파일입니다.홈 디렉토리에 있기 때문에 사용자만 해당되며 프로젝트 .gitignore 파일을 오염시키지 않습니다.
저는 수년 동안 이 방법을 사용해 왔고, 좋은 결과를 얻었습니다.
git 에일리어스를 몇 개 인스톨 하면, 이 처리를 간단하게 할 수 있습니다.이 조작에 의해[alias]
의 노드.gitconfig
파일.
git config --global alias.ignore 'update-index --skip-worktree'
git config --global alias.unignore 'update-index --no-skip-worktree'
git config --global alias.ignored '!git ls-files -v | grep "^S"'
인스톨 하는 쇼트 컷은, 다음과 같습니다.
git ignore config.xml
- git은 아무것도 변하지 않은 척합니다.
config.xml
- 실수로 변경을 커밋하는 것을 방지합니다.
- git은 아무것도 변하지 않은 척합니다.
git unignore config.xml
- git는 당신의 변경에 대한 확인 응답을 재개합니다.
config.xml
- 이러한 변경을 다시 커밋할 수 있습니다.
- git는 당신의 변경에 대한 확인 응답을 재개합니다.
git ignored
- git은 위에서 설명한 방법으로 "삭제"된 모든 파일을 나열합니다.
파트만의 답변을 참고해서 만든 겁니다.--assume-unchanged
같은 버전입니다.
제가 제시하는 버전은--skip-worktree
로컬 변경을 무시합니다.차이에 대한 자세한 설명은 Borealid의 답변을 참조하십시오.--skip-worktree
님의 목적은 개발자가 변경을 커밋할 위험 없이 파일을 변경하는 것입니다.
그git ignored
여기에 제시된 명령어는git ls-files -v
및 목록을 필터링하여 로 시작하는 엔트리만 표시합니다.S
태그.S
tag는 상태가 "module worktree"인 파일을 나타냅니다.파일 상태 전체 목록은 다음과 같습니다.git ls-files
: 의 메뉴얼을 참조해 주세요.-t
옵션을 지정합니다.
로컬 파일을 제외하기 위한 간단한 한 줄 솔루션입니다.
echo YOUR_FILE_OR_DIRECTORY >> .git/info/exclude
@Vanduc1102 코멘트에 근거하고 있습니다.적용되지 않은 경우, 그 후에 다음의 코멘트를 실행합니다.
git update-index --assume-unchanged YOUR_FILE_OR_DIRECTORY
--assume-unchanged와 --skip-worktree는 모두 로컬에서 파일을 무시하는 올바른 방법이 아닙니다.이 답변과 git update-index 설명서에 기재되어 있는 메모를 확인해 주십시오.어떠한 이유로든 빈번하게 변경(또는 클론에서 다른 것으로 변경)되는 파일은 커밋되어서는 안 되며, 따라서 이러한 파일은 처음부터 추적되어서는 안 됩니다.
단, 로컬에서 파일을 무시하는 방법은 두 가지가 있습니다(두 가지 모두 추적되지 않은 파일과 함께 작동합니다).파일명을 .git/info/exclude 파일에 저장합니다.이것은 .gitignore의 로컬 대체 파일이지만 현재 클론에만 해당됩니다.또는 글로벌 .gitignore(pyz, pycache 등 일반적인 보조 파일에만 적절하게 사용되어야 함)를 사용하면 해당 파일은 사용자의 머신에 있는 모든 git repo에서 무시됩니다.
위의 내용을 자동화(제외 또는 글로벌 .gitignore에 추가)하려면 다음 명령을 사용합니다(bash 프로파일에 추가).
- 제외경로를 때 ####을 " " "로 변경합니다( " " " " " " " " " " " " " # ) 。 " 별# " # " 。 " 별 " # " 。 " 별 " # " 。"
.git/info/exclude
- 글로벌 .gitignore를 먼저 글로벌 .gitignore로 만든 후 ##FILE-NAME##을 로 변경합니다.
~/.gitignore
리눅스
alias git-ignore='echo $1 >> ##FILE-NAME##'
alias git-show-ignored='cat ##FILE-NAME##'
git-unignore(){
GITFILETOUNIGNORE=${1//\//\\\/}
sed -i "/$GITFILETOUNIGNORE/d" ##FILE-NAME##
unset GITFILETOUNIGNORE
}
MacOS(용 .bak 필요)sed
(sed에 를 치환하기 .합니다."rm 파일 이름"박하다
alias git-ignore='echo $1 >> ##FILE-NAME##'
alias git-show-ignored='cat ##FILE-NAME##'
git-unignore(){
GITFILETOUNIGNORE=${1//\//\\\/}
sed -i.bak "/$GITFILETOUNIGNORE/d" ##FILE-NAME##
rm ##FILE-NAME##.bak
unset GITFILETOUNIGNORE
}
다음 작업을 수행할 수 있습니다.
git-ignore example_file.txt
git-unignore example_file.txt
되지 않은 되지 않은) 무시하기 은 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ".gitignore
되지 않은 하여 한 합니다.*
새로운 행이 이어집니다.추적되지 않은 파일이 여러 폴더에 있는 경우 매우 간단하고 간단한 솔루션입니다.모든 되지 않은 로부터 왔습니다.vendor
그리고 방금 위가 작동했습니다.
단순히 현재 repo의 모든 분기에 있는 커밋에서 제거하고 싶은 파일 ypu에 경로를 추가합니다.
- Windows 디렉토리 설정에서 숨김 파일 숨기기 해제
- 경로 REPO_MAIN_PATH/.git/info/exclude를 엽니다.
- 예를 들어 **/toExcludeFile.bat을 추가합니다.
그리고 바로 그거야! 나한테는 위 옷이 너무 길어.KISS - 멍청하게 단순하게
서브모듈 내의 파일을 로컬로 무시하는 경우:
★★my-parent-repo/.git/modules/my-submodule/info/exclude
「」와 입니다..gitignore
filename을 클릭합니다.
TL;DR - 파일을 무시하도록 출력을 필터링합니다.
하지 마세요.이를 위한 기술적 방법에 대한 훌륭한 답변이 있습니다.하지만 저는 이 Q/A 페이지를 여러 번 찾았습니다.보시다시피 여러 가지 솔루션이 있습니다.문제는 각각 git이 파일을 무시하게 한다는 것입니다.그것은 현재 당신이 원하는 것일 수도 있지만, 미래에는 아닐 수도 있습니다.
디테일의 악마는
git
는 파일을 보고하지 않습니다.- 어떤 메커니즘을 사용했는지 기억해야 합니다.
.gitignore에 추가하거나 필터를 작성합니다.git status
이치노각각은 파일을 무시하지만 무시되는 이유에 대한 답은 더 명확합니다.래퍼 스크립트의 두 번째 경우(또는 명령줄 호출)는 무시하도록 선택한 내용과 워크플로우가 비표준임을 충분히 알 수 있도록 합니다.
.파일이그에 repo.gitignore.gitignore 파일을 추가하는 입니다..gitignore
이치노
언급URL : https://stackoverflow.com/questions/1753070/how-do-i-configure-git-to-ignore-some-files-locally
'programing' 카테고리의 다른 글
목록의 값을 Excel로 내보내기 (0) | 2023.04.15 |
---|---|
현재 PowerShell 프로세스가 32비트인지 64비트인지를 확인합니다. (0) | 2023.04.15 |
셸 명령이 완료될 때까지 기다립니다. (0) | 2023.04.10 |
C#에서는 문자열을 사용해야 합니까?[ Empty ]또는 [String]입니다.문자열을 초기화하려면 비워두시겠습니까? 아니면 " "? (0) | 2023.04.10 |
SQL Server: Null VS 빈 문자열 (0) | 2023.04.10 |